C语言与水仙花数

C语言与水仙花数

水仙花数:前提三位数,“个位数的立方”加上“十位数的立方”加上“百位数的立方”恰好等于这个数。

我们来用C语言书写水仙花数:

方法一

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i,j,k;
    for(i = 1;i<=9;i++){      //三位数的百位
        for(j = 0;j<=9;j++){    //三位数的十位
            for(k = 0;k<=9;k++){ //三位数的个位
                if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
                    printf("%d  ",i*100+j*10+k);
            }
        }
    }
    system("pause");
    return 0;
}

主要的思路:

既然这个数是三位数,可以先将100到999的所有的数得到,然后再做if判断。

方法二

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int x,a,b,c;
    for(x=100;x<=999;x++){
        a=x/100;  //百位
        b=x/10%10;//十位
        c=x%10;   //个位
        if(x==a*a*a+b*b*b+c*c*c)
            printf("%d ",x);
    }
    system("pause");
    return 0;
}

这里主要是遍历所有的三位数,然后通过特定的方式得到三位数字,最后判断。

原文地址:https://www.cnblogs.com/s1-myblog/p/5982061.html