阿姆斯特朗數 軟件訓練營 初級 入職前練習 C/C++

/**
4343 阿姆斯特朗數 軟件訓練營 初級 入職前練習 C/C++
如果一個正整數等於其各個數字的立方和,則該數稱爲阿姆斯特朗數(亦稱爲自戀性數),1除外,如407 = 43+03+73就是一個阿姆斯特朗數。試編程求n(n ≤ 65536)以內的所有阿姆斯特朗數。

注:本題的阿姆斯特朗數和網上的定義不同,不過還是按題目的意思來做了
接口說明
原型:
int CalcArmstrongNumber(int n);
輸入參數:
int n: n ≤ 65536
返回值:
n以內的阿姆斯特朗數的數量
*/
#include<iostream>
#include<cmath>
using namespace std;
/*
功能: 求n(n ≤ 65536)以內的所有阿姆斯特朗數
原型:
int CalcArmstrongNumber(int n);

輸入參數:
int n: n ≤ 65536
返回值:
n以內的阿姆斯特朗數的數量。
*/
bool IsArmstrongNumber(const int p_N);
int CalcArmstrongNumber(int n)
{
    /*在這裏實現功能*/
if(n<=1){
return 0;
}
    int res = 0;
for(int i=2;i<=n;++i){
if(IsArmstrongNumber(i)==true){
++res;
}
}
    return res;
}

bool IsArmstrongNumber(const int p_N){

int tmp = p_N;
int sum = 0;
while(tmp>0){
sum += int(pow(float(tmp%10),3));
tmp/=10;
}
if(sum == p_N){
return true;
}else{
return false;
}
}

int main()
{
    cout<<"Hello pc"<<endl;
int res = CalcArmstrongNumber(10000);
cout<<res<<endl;
    system("pause");
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章