输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=13+53+33。

输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=13+53+33。

问题描述:

img

我只会c++……
但可以借助c++讲讲思路。

#include<bits/stdc++.h>
using namespace std;
int main(){
    printf(">>>\n");
    printf("parcissus number is:\n");
    for(int i=1;i<=9;i++)
        for(int j=0;j<=9;j++)
            for(int k=0;k<=9;k++){
                int sum=100*i+10*j+k;
                if(pow(i,3)+pow(j,3)+pow(k,3)==sum)
                    printf("%d%d%d ",i,j,k);
            }
    printf("\n>>>");
    return 0;
}

首先,建立三个循环,分别是三位数的百位、十位和个位。定义一个变量sum,给它赋值为这三个数组成的三位数,再判断sum和三个数的立方和是否相等。