#include<iostream> #include <conio.h> using namespace std; // 一般整数的平方和立方不用pow, // 写一个函数只是为了清楚一点,直接写a*a*a也可以 int cube(int a) { return a*a*a; } int main() { for(int i=100; i<=999; i++) { int a = i / 100; // 百位 int b = (i / 10) % 10; // 十位 int c = i % 10; // 个位 if (cube(a)+cube(b)+cube(c) == i) { cout << a << "^3+" << b << "^3+" << c << "^3=" << i << endl; } } getch(); // 防止程序运行结束就退出 return 0; }
这个就是水仙花数问题。你一次循环下来,在每个循环中,对当前变量进行分解,然后验证就是了。 #include<iostream> using namespace std; int main() { int i; int a, b, c;
for (i = 100; i <= 999; i++) { a = i / 100; //取百位数 b = i % 100 / 10; //取十位数 c = i % 10; //取个位数 if (a*a*a + b*b*b + c*c*c == i) { cout << i << endl; } } return 0; }