水仙花问题

判断一个位数是否为水仙花数

#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");
}



猜你喜欢

转载自blog.csdn.net/neusoft06/article/details/78772922