#29828: C 語言,參考參考就好


Huang1002 (Coding好難)

學校 : 不指定學校
編號 : 189694
來源 : [49.216.80.100]
最後登入時間 :
2022-10-24 10:29:01
a040. 阿姆斯壯數 | From: [122.254.28.31] | 發表日期 : 2022-04-04 01:56

 

#include <stdio.h>

#include <stdlib.h>

#include <stdbool.h>

//IsItArmstrong代表著輸入一個整數,他要回傳這個數是不是阿姆斯壯數

//這樣對我來說比較好思考哈哈,power就是回傳次方值

bool IsItArmstrong(int num);

int power(int x, int y);

 

int main(){

    int lowerBound, upperBound,i;

    bool boolen=false;

    scanf("%d%d", &lowerBound, &upperBound);

    //接下來就是在給定的範圍內窮舉啦

    for(i=lowerBound;i<=upperBound;i++){

        if(IsItArmstrong(i)){

            printf("%d ",i);

            boolen=true;

        }

    }

    if(!boolen)

        printf("none");

 

    return 0;

}

 

//length所代表的就是n次方,在程式的一開始我先計算這個數有幾位

//然後再取商和餘數,最後加總

bool IsItArmstrong(int num){

    int length=1, temp=num,i,sum=0;

    while(temp/10!=0){

        length++;

        temp/=10;

    }

    for(i=0,temp=num;i<length;i++,temp/=10)

        sum+=power(temp%10,length);

    

    if(sum==num)

        return true;

    else

        return false;

}

 

int power(int x, int y){

    int i,num=1;

    for(i=0;i<y;i++){

        num*=x;

    }

    return num;

}

 
ZeroJudge Forum