[华为机试练习题]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;
}
目录
相关文章
|
C++
蓝桥杯练习题十 - 煤球数目(c++)
蓝桥杯练习题十 - 煤球数目(c++)
103 0
蓝桥杯练习题十 - 煤球数目(c++)
|
C++
蓝桥杯练习题四 - 排它平方数(c++)
蓝桥杯练习题四 - 排它平方数(c++)
81 0
|
算法
LeetCode每日一题——668. 乘法表中第k小的数
几乎每一个人都用 乘法表。但是你能在乘法表中快速找到第k小的数字吗?
90 0
|
C语言
浙大版《C语言程序设计(第3版)》题目集习题5-6 使用函数输出水仙花数 (20 分)
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=1 ​3 ​​ +
462 0
浙大版《C语言程序设计(第3版)》题目集习题5-6 使用函数输出水仙花数 (20 分)