华师一附中OI组

标题: C++初级班--水仙花数 [打印本页]

作者: JASONZHU    时间: 2018-7-18 23:24
标题: C++初级班--水仙花数
【小科普 水仙花数:水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身,例如:1*1*1(1^3) + 5*5*5(5^3)+3*3*3(3^3) = 153。】
题目:
小明有道数学题不会做,题目是让他把所有的水仙花数找出来。于是找到热心肠,乐于助人,会计算机的你。你能不能用你所学的知识帮帮小明呢?



作者: JASONZHU    时间: 2018-7-18 23:26
way 1----------;
  1. #include<iostream>
  2. using namespace std;
  3. int a,b,c,n;
  4. int main()
  5. {
  6.     cout<<"======way 1======"<<endl;
  7.     for(n=100; n<=999; n++)
  8.     {
  9.         a=n/100%10;
  10.         b=n/10%10;
  11.         c=n/1%10;
  12.         if(a*a*a+b*b*b+c*c*c==n)
  13.             cout<<n<<" ";
  14.     }
  15. return 0;
  16. }
  17.   
复制代码

作者: JASONZHU    时间: 2018-7-18 23:27
way2----------
  1. #include<iostream>
  2. using namespace std;
  3. int a,b,c,abc;
  4. int main()
  5. {
  6.     cout<<endl<<"======way 2======"<<endl;
  7.     for(a=1; a<=9; a++)
  8.         for(b=0; b<=9; b++)
  9.             for(c=0; c<=9; c++)
  10.                 if(a*a*a+b*b*b+c*c*c==a*100+b*10+c)
  11.                     cout<<a<<b<<c<<" ";
  12. }
复制代码

作者: JASONZHU    时间: 2018-7-18 23:28
整合:
  1. #include<iostream>
  2. using namespace std;
  3. int a,b,c,n;
  4. int main()
  5. {
  6.     cout<<"======way 1======"<<endl;
  7.     for(n=100; n<=999; n++)
  8.     {
  9.         a=n/100%10;
  10.         b=n/10%10;
  11.         c=n/1%10;
  12.         if(a*a*a+b*b*b+c*c*c==n)
  13.             cout<<n<<" ";
  14.     }
  15.     cout<<endl<<"======way 2======"<<endl;
  16.     int abc;
  17.     for(a=1; a<=9; a++)
  18.         for(b=0; b<=9; b++)
  19.             for(c=0; c<=9; c++)
  20.                 if(a*a*a+b*b*b+c*c*c==a*100+b*10+c)
  21.                     cout<<a<<b<<c<<" ";
  22. }
复制代码





欢迎光临 华师一附中OI组 (http://hsyit.cn/) Powered by Discuz! X3.2