C语言水仙花程序

/*----打印100-1000以内的水仙花数。"水仙花数"是指一 个三位数,其各位数字立方和应等于该数本身-------*/

#include<stdio.h>

void main()

{

int a,b,c,i;

printf("\n'水仙花数'为(100-1000):\n"); for(i=100;i<1000;i++)

{

a=i/100; /*分解出百位*/

b=i/10%10; /*分解出十位*/

c=i%10; /*分解出个位*/

if(a*100+b*10+c==a*a*a+b*b*b+c*c*c)

{

printf("%-5d\n",i);

}

printf("\n");

} }

 

第二篇:水仙花数C语言

水仙花数意思是一个三位数m,特点:

m=a^3+b^3+c^3 其中a为m的百位数,b为m的十位数,c为m的个位数,

如 m=371 则有 a 为 3 b 为 7 c 为 1

a,b,c如何求?

a为m的百位数: 首先把m的小数点后移两位,用m/100就可以了吧~

b为m的十位数: 如何求十位?利用刚刚求出的百位数a,将m简化为一个十位数m-a*100 比如:371-3*100=71 这样再求这个十位数7就好求了。仍然利用小数点前移然后求整 fix(71/10) 就求出 b=fix(7.1)=7 c为m的个位: 跟求b一样~利用先前求出的a与b,将m的十位,百位都减去就OK啦~~~~ 这样,a与b与c就都有了

如果 m 满足这样的条件 m=a^3+b^3+c^3 则 m为一个水仙花数

m不是一个水仙花数

程序:

#include<stdio.h>

void main()

{

int a,b,c,i;

for(i=0;i<=999;i++)

{

a=i/100; b=i%100/10; c=i%10;

if(a*100+b*10+c==a*a*a+b*b*b+c*c*c)

printf("%d\n",i) ;

}

} 输出m 否则

相关推荐