[华为机试练习题]48.阿姆斯特朗数

来源:互联网 发布:cf数据异常什么原因 编辑:程序博客网 时间:2024/05/16 01:09

题目

描述:

如果一个正整数等于其各个数字的立方和,则该数称为阿姆斯特朗数(亦称为自恋性数),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;}
0 0