(百例程式設計)24.阿姆斯特朗數
阿新 • • 發佈:2019-02-04
題目:一個正整數等於其各個數字的立方和,則稱該數為阿姆斯特朗數(亦稱為自戀性數)。如 407=43+03+73就是一個阿姆斯特朗數。求1000以內的所有阿姆斯特朗數。用窮舉法,依次取1000以內的各數i,將i的各位數字分解後,據阿姆斯特朗數的性質進行計算和判斷。
阿姆斯特朗數的定義: 如果一個n位正整數等於其各位數字的n次方之和,則稱該數為阿姆斯特朗數。例如1^3 + 5^3 + 3^3 = 153 。當n=3時,又稱水仙花數,特指一種三位數,其各個數之立方和等於該數。水仙花數共有4個,分別為:153、370、371、407。
#include<iostream> using namespace std; void trans(int a,int *q); int main(void) { int a[3]; for (int i=2;i!=1000;++i) { trans(i,a); if (i==a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]) { cout<<i<<endl; } } return 0; } void trans(int a,int *q) { for (int k=100;k!=0;++q) { *q=a/k%10; k/=10; } }