ACMNO.10打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=1^3+5^3+3^3。 Output: 153 ???

版权声明:转载请声明原文链接地址,谢谢! https://blog.csdn.net/weixin_42859280/article/details/84895294

题目描述

打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。

 例如: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结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42859280/article/details/84895294
今日推荐