• C语言程序设计课堂总结5 蓝银杏


    这个系列是用来解决学校C语言课程的,并不适用于ACM和OI

    本系列博客分为2部分,分别是 C语言程序设计笔记(网课) 和 课堂总结(线下课)

    欢迎转载ssw02的博客: https://www.cnblogs.com/ssw02/p/15994555.html


    C语言程序设计课堂总结5-1

    C语言程序设计笔记上关于循环我写的比较多了,这里直接贴几张基础的PPT来回顾一些循环的知识,并且开始打题为主

    image

    image

    image

    image

    image

    image


    C语言程序设计课堂总结5-2

    打题!!!打题!!! 友情提示,为了避免某些人ctrl+c/v,我刻意使用C++语法写的,有的地方还会刻意改动,提交是会RE的哦
    Description1

    输出所有的“水仙花”数。“水仙花”数是一个三位数,它的每一位立方的和与自身相等。如:153=13+33+53,153是一个“水仙花”数

    Input1

    Output1

    从大到小依次输出每一个水仙花数,以空格为间隔

    Analysed1

    这题有两种基础的做法,第一种是枚举所有三位数字,并且进行拆分,验证是否是水仙花数字
    第二种做法是枚举每一位数字去组成水仙花数并且验证,都很直接了当

    ACcode1

    #include<bits/stdc++.h>
    using namespace std ; 
    int main(){
    	for( register int i=100 ; i<=999 ; ++i ){
    		int FNum = i/100 , SNum = i/10%10 , TNum = i%10 ; 
    		if( FNum*FNum*FNum + SNum*SNum*SNum + TNum*TNum*TNum == i )printf("%d ",i);
    	}
    	return 0 ;
    } 
    

    ACcode2

    #include<bits/stdc++.h>
    using namespace std ;
    int main(){
    	for( register int i=1 ; i<=9 ; ++i )//注意百位不能是0 
    	   for( register int j=0 ; j<=9; ++j )
    	      for( register int k=0 ; k <=9 ; ++k)
    	      	if( 100*i + 10*j + k == i*i*i + j*j*j + k*k*k)
    			   printf("%d ",100*i + 10*j + k);
    	return 0;
    } 
    

    Description2

    完数是指一个整数恰好等于它的因子之和(除自身外),则称这个数为完数。从键盘先后输入两个不大于9999的正整数m和n,若m>n,则交换两数。然后求m~n(m和n均为正整数且m≤n)之间的所有完数。

    Input2

    1 2000

    Output2

    6
    28
    496

    Analysed2

    数据范围这么小,N^2算法即可
    强行枚举范围内每个数的因数相加即可

    ACcode2

    #include<bits/stdc++.h>
    using namespace std;
    int m , n ; 
    int main(){
    	cin>>m>>n ;
    	if( m>n )swap(m,n) ; 
    	for( register int i = m ; i <= n ; ++i ){
    		int Sum = 0 ; 
    		for( register int j = 1 ; j <= i/2 ; ++j )
    		   if( !(i%j) )Sum += j ; 
    		if( Sum == i )printf("%d\n",i) ; 
    	}
    	return 0 ; 
    } 
    

    Description2

    完数是指一个整数恰好等于它的因子之和(除自身外),则称这个数为完数。从键盘先后输入两个不大于9999的正整数m和n,若m>n,则交换两数。然后求m~n(m和n均为正整数且m≤n)之间的所有完数。

    Input2

    1 2000

    Output2

    6
    28
    496

    Analysed2

    数据范围这么小,N^2算法即可
    强行枚举范围内每个数的因数相加即可

    ACcode2

    #include<bits/stdc++.h>
    using namespace std;
    int m , n ; 
    int main(){
    	cin>>m>>n ;
    	if( m>n )swap(m,n) ; 
    	for( register int i = m ; i <= n ; ++i ){
    		int Sum = 0 ; 
    		for( register int j = 1 ; j <= i/2 ; ++j )
    		   if( !(i%j) )Sum += j ; 
    		if( Sum == i )printf("%d\n",i) ; 
    	}
    	return 0 ; 
    } 
    
  • 相关阅读:
    Spring Bean前置后置处理器的使用
    js用正则表达式查找中文
    wpf文字模糊
    Monster Audio 使用教程 (五) 添加区域效果器
    关于数据库锁的一些注意事项
    Monster Audio 使用教程(四)Wifi 远程遥控
    Monster Audio 使用教程(三)多音轨录音、播放
    Monster Audio 使用教程(二)效果参数的保存
    Monster Audio 使用教程(一)入门教程 + 常见问题
    wpf中实现快捷键
  • 原文地址:https://www.cnblogs.com/ssw02/p/16073740.html
Copyright © 2020-2023  润新知