迪塞尔 发表于 2018-5-20 10:57:18

求解

“3位水仙花数”是指一个三位整数,其各位数字的3次方和等于该数本身。例如:ABC是一个“3位水仙花数”,则:A的3次方+B的3次方+C的3次方 = ABC。

   请按照从大到小的顺序输出所有的3位水仙花数,请用一个“空格”分隔输出结果。

   注意:这是一个OJ题目,输出格式要严格一致。

故梦L 发表于 2018-5-20 12:52:22

for num in range(999,99,-1):
    a=num%10#取最低位数
    b=((num%100)-a)//10#取第二位数
    c=num//100#取最高位数
    if (a**3+b**3+c**3)==num:
      print(num,end=' ')

故梦L 发表于 2018-5-20 13:02:55

#include "stdio.h"
#include "math.h"

int main()
{
        int A,B,C=0;
        for (int num=999;num>99;num--)
        {
                C=num%10;
                B=((num%100)-C)/10;
                A=num/100;
                if ((pow(A,3)+pow(B,3)+pow(C,3))==num)
                  printf("%d\t",num);
        }
        return 0;
}
页: [1]
查看完整版本: 求解