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

题目

描述:

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

你可能感兴趣的:(华为机试练习题)