juliusun.com
(14/50 节 页面下方包含QQ群、作者QQ等)
1、输出所有的“水仙花数”。所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。如153是一个水仙花数,153=1*1*1+5*5*5+3*3*3
#include<stdio.h> int main() { int i; for( i=100 ; i<1000 ; ++i ) { int a,b,c; a = i/100; //百位数 b = (i/10)%10; //十位数 c = i % 10; //个位数 if ((a*a*a + b*b*b + c*c*c) == i) printf("%d\t",i); } return 0; }
2、一个数如果恰好等于它的因子之和,这个数就被称为“完数”。例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。编写程序找出1000之内的所有完数,并按下面格式输出其因子:
6 的因子有1,2,3
#include<stdio.h> int main() { int i; for( i=100 ; i<1000 ; ++i ) { int sum=0,j;//sum为因子和 for( j=1; j<i ; ++j) { if((i%j)==0) sum+=j;//是因子则加 } if(sum==i)//是完数 { int t; printf("%d的因子有",i); for( t=1 ; t<i ; ++t ) { if( (i%t)==0 ) { if(t!=1) printf(",");//1时不输出逗号 printf("%d",t); } } printf("\n"); } } return 0; }
3、输出一个菱形,菱形的连长来自键盘输入,如输入4,则输出以下图形:
/* 思路说明:字符的横纵距离和如果小于等于边长则在菱形内部或边上,输出星号,否则输出空格 */ #include<stdio.h> int main() { int i,x,y; scanf("%d",&i); //外层执行循环一次,输出一行 for( x=0 ; x<(2*i-1) ; ++x ) { //内层执行循环一次,输出一个*或空格 for( y=0 ; y< (2*i-1) ; ++y ) { int a,b;//距离中心点的横纵距离 a = x - (i-1); b = y - (i-1); if( a<0 ) a=-1*a; if( b<0 ) b = -1*b; if( (a+b) <= (i-1) ) printf("*"); else printf(" "); } printf("\n"); } return 0; }
作者:冥河 QQ:3304576112 交流QQ群:554701039 本教程内容由本站保留版权,请勿复制传播。