21位的水仙花数,用c++怎样解决?
1个回答

我这里大概运行30s,耐心等几十秒吧,给,代码如下:

#include

#include

#include

#include

using namespace std;

#define N 10

#define M 21//如果要算其他位数,修改此数字

//

void SetZero(int s[])//置零

{

int i;

for(i = 0 ; i < 10 ; i ++)

{

s[i] = 0;

}

}

void StatNumber(int num[],int s[])//统计num[]中 9出现的次数 结果放到S[]中

{

int i = 0 ;

SetZero(s);

while(i=10)

{

if(sum[i][m+1] == -1)sum[i][m+1] = 0;

sum[i][m+1] += sum[i][m]/10;

sum[i][m] = sum[i][m]%10;

}

}

}

}

}

void Print(int sum[])//输出水仙花数

{

int i = M-1;

if(sum[i])

{

for(; i >= 0 ; i --)

{

x05cout