水仙花数是单个数字的三次方相加,等于它本身。以三位数为例,它的百位数的三次方,加上十位数的三次方,再加上个位数的三次方,和是它本身。
java版
public class Test {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) {
int x = i / 100;
int y = (i / 10) % 10; //取出十位数
int z = i % 10;
if (i == (x * x * x + y * y * y + z * z * z)) {
System.out.println(i);
}
}
}
}
输出结果:
153
370
371
407
C版
# include <stdio.h>
void main(){
for(int i=100;i<1000;i++){
int x=i/100;
int y=(i/10)%10;
int z=i%10;
if(i==(x*x*x+y*y*y+z*z*z)){
printf("%d\n",i);
}
}
}
输出结果同上。
C++版
#include<iostream>
using namespace std;
int main() {
for(int i=100; i<1000; i++) {
int x=i/100;
int y=(i/10)%10;
int z=i%10;
if(i==(x*x*x+y*y*y+z*z*z)) {
printf("%d\n",i);
}
}
return 0;
}