码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-07-04 11:12:52      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:华为机试练习题

题目

描述:

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

标签:华为机试练习题

原文地址:http://blog.csdn.net/sunnyyoona/article/details/46753773

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!