求问题解法(2)(10分)

  • 主题发起人 主题发起人 freestyle_0_0
  • 开始时间 开始时间
F

freestyle_0_0

Unregistered / Unconfirmed
GUEST, unregistred user!
求100~999中的水仙花数,水仙花数是指一个三位数,它的每位数字的立方之和等于该数。例如,因为153=1三次方+5的三次方+3的三次方,所以153为水仙花数。
求用C写的程序;
 
从100开始循环计算到999,
将每一个数先除以100得到商a,余数b
将余数b除以10得到商c,余数d,
最后判断a的立方+c的立方+d的立方是否等于这个数
 
#include <iostream>
#include <conio.h>
using namespace std;
#define TRIMP(x) (x)*(x)*(x)
int main()
{
cout<<"水仙花数有:"<<endl;
int b, c, d, tmp;
b = c = d = 0;
for(int n = 100;
n<=999;
++n)
{
b = TRIMP(n/100);
c = TRIMP((n%100)/10);
d = TRIMP((n%100)%10);
tmp = b + c + d;
if(n == tmp)
cout << n << endl;
}
getch();
return 0;
}
 
谢谢啦bytelife
 
后退
顶部