题目描述
打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。
例如:153是一个水仙花数,因为153=1^3+5^3+3^3。 Output:
153
???
???
???
输入
无
输出
所有的水仙花数,从小的开始。 每行一个
来源/分类
C语言
思路:
最难的就是找水仙花啦。哈哈,等于没说一样!
咳咳,接下来说说怎么找:
三位数加一个限制条件即可!
for(j=100;j<=999;j++){}
如题,我们只要寻找到那些去进行三次方运算的数即可!
c=j%10; 第一个个位数,进行%10运算即可!就会得到和个位数!
b=(j%100)/10;我们要先舍去百位数,就进行%100,
运算得到去掉百位数之后的两位数!再把这个两位数除10即可!就得到了十位数数字!
a=j/100;这个直接除100,就会得到百位数!
OK,来实现吧!
代码:(*符号里面是进行验证的!让你可以看到程序运行的如何!)
#include<iostream>
using namespace std;
int main()
{
int a,b,c,i,j;//s=0;
for(j=100;j<=999;j++)
{
c=j%10;b=(j%100)/10;a=j/100;
/*cout<<"j "<<j;
cout<<"a "<<a;
cout<<"b "<<b;
cout<<"c "<<c<<endl;*/
if(j==(a*a*a+b*b*b+c*c*c))
cout<<j<<endl;
}
}
运行示意图:(把*符号去掉的情况!)
带上*符号进行OJ操作!
OJ结果: