特殊的数字
问题描述
问题描述
153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1×1×1+5×5×5+3×3×3。编程求所有满足这种条件的三位十进制数。
输出格式
按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。
问题分析
首先范围确定,是
3位
十进制数,其次,是循环遍历输出
代码实现
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
// 153是一个非常特殊的数,它等于它的每位数字的立方和,
// 即153=1*1*1+5*5*5+3*3*3。编程求所有满足这种条件的三位十进制数。
int main(){
int g,s,b;
//3位数字
for(int j=100;j<1000;j++){
g=j%10;
s=j/10%10;
b=j/100;
if(pow(g,3)+pow(s,3)+pow(b,3)==j)// 第1位等于第4位,第2位等于第3位
cout<<j<<endl;
}
}
运行结果
153
370
371
407
--------------------------------
Process exited after 1.84 seconds with return value 0
请按任意键继续. . .
总结
主要是将数字逐个拆分,然后利用
pow()
函数求立方,得满足三个数的立方和等于原数。