判断一个位数是否为水仙花数
#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"); }