标签:华为机试练习题
题目
描述:
如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数(亦称为自恋性数),1除外,如407 = 43+03+73就是一个阿姆斯特朗数。试编程求n(n ≤ 65536)以内的所有阿姆斯特朗数。
接口说明
原型:
int CalcArmstrongNumber(int n);
输入参数:
int n: n ≤ 65536
返回值:
n以内的阿姆斯特朗数的数量
练习阶段:
初级
代码
/*---------------------------------------
* 日期: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;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:华为机试练习题
原文地址:http://blog.csdn.net/sunnyyoona/article/details/46753773