判断一个位数是否为水仙花数
#include<stdio.h> /*函数头:输入输出头文件*/
void main() /*空类型:主函数*/
{
int a,b,c,d,e=0; /*定义变量的数据类型为整型*/
printf("输入一个3位数:"); /*输出文字提示*/
scanf("%3d",&a); /*输入一个3位数字*/
b=a;
for(c=1;c<=3;c++) /*将输入的数用求水仙花数的方式计算*/
{
d=b%10; /*将输入的3位数的每一位分别取出*/
e=e+d*d*d; /*按求水仙花数的方式计算*/
b=b/10; /*去掉最后一位数*/
}
if(a==e) /*判断计算后的数是否与计算前的相等*/
printf("%d 是水仙花数\n",a); /*若相等,则是水仙花数*/
else
printf("%d 不是水仙花数\n",a); /*若不相等,则不是水仙花数*/
}
100~1000以内的水仙花数
#include<stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c,d;
for(a=100;a<=999;a++)
{
b=a/100;
c=a%10;
d=(a/10)%10;
if(b*b*b+c*c*c+d*d*d==a)
printf("%d ",a); //没错,加上空格
}
system("pause");
}