特殊的数字——算法

特殊的数字

问题描述

问题描述

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()函数求立方,得满足三个数的立方和等于原数。

发布了61 篇原创文章 · 获赞 5 · 访问量 5077

猜你喜欢

转载自blog.csdn.net/qq_38496329/article/details/104003571