(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
本教程内容由本站保留版权,请勿复制传播。