水仙花数
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
求出所有的“水仙花数”。所谓的“水仙花数”,是指一个3位数,其各位数字的立方和等于该数本身。
输入格式
程序使用for循环遍历所有三位数整数,不需要手动输入
输出格式
遇到水仙花数输出
样例输入
无输入
样例输出
例:
153
370
371
407
数据规模和约定
输入数据中每一个数的范围。
例:100~999
使用回溯法即可解出
#include
using namespace std;
int sum = 0, num = 0;
void change(int s)
{
if (s > 3)
{
if (sum == num)
{
cout << sum << endl;
}
return;
}
for (int i = 0; i < 10; i++)
{
if (s == 1 && i==0)
{
continue;
}
num = num*10 + i;
sum = sum + i * i * i;
change(s + 1);
num = num / 10;
sum = sum - i * i * i;
}
}
int main()
{
change(1);
return 0;
}