题目
描写叙述:
假设一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数(亦称为自恋性数),1除外。如407 = 43+03+73就是一个阿姆斯特朗数。
试编程求n(n ≤ 65536)以内的全部阿姆斯特朗数。
接口说明
原型:
int CalcArmstrongNumber(int n);
输入參数:
int n: n ≤ 65536
返回值:
n以内的阿姆斯特朗数的数量
练习阶段:
0基础
代码
/*---------------------------------------
* 日期:2015-07-04
* 作者:SJF0115
* 题目:阿姆斯特朗数
* 来源:华为机试练习题
-----------------------------------------*/
#include <iostream>
#include "OJ.h"
using namespace std;
/*
功能: 求n(n ≤ 65536)以内的全部阿姆斯特朗数
原型:
int CalcArmstrongNumber(int n);
输入參数:
int n: n ≤ 65536
返回值:
n以内的阿姆斯特朗数的数量。
*/
int CalcArmstrongNumber(int n){
if(n <= 1){
return 0;
}//if
int sum,m,tmp,count = 0;
for(int i= 2;i <= n;++i){
sum = 0;
tmp = i;
while(tmp){
m = tmp % 10;
sum += m * m * m;
tmp /= 10;
}//while
if(sum == i){
++count;
}//if
}//if
return count;
}