|
如果一個(gè)數(shù)字等于其自身數(shù)字的總和乘以給定數(shù)字中數(shù)字位數(shù)的冪,則稱為阿姆斯特朗 (Armstrong)或水仙花數(shù) (Narcissistic) 數(shù)字。
例如,數(shù)字153是阿姆斯特朗數(shù)字,因?yàn)椋?^3 + 5^3 + 3^3 = 153
類似地,1634也是阿姆斯特朗數(shù),即 1^4 + 6^4 + 3^4 + 4^4 = 1634
數(shù)字1到9也是阿姆斯特朗數(shù)字。
- #include <stdio.h>
- #include <conio.h>
- #include <math.h>
- int main()
- {
- int number, original, rem, sum=0, digit=0;
- clrscr();
- printf("Enter number: ");
- scanf("%d", &number);
-
- original = number;
-
- /* Counting number of digit in a given number 計(jì)算給定數(shù)字中的位數(shù) */
- while(number!=0)
- {
- digit++;
- number = number/10;
- }
-
- /* After execution above loop number becomes 0 執(zhí)行后,循環(huán)號(hào)變?yōu)?
- So copying original number to variable number 因此將原始變量復(fù)制到可變 變量 */
-
- number = original;
- /* Finding sum */
- while(number != 0)
- {
- rem = number%10;
- sum = sum + pow(rem, digit);
- number = number/10;
- }
- /* Making decision */
- if(sum == original)
- {
- printf("%d is ARMSTRONG.", original);
- }
- else
- {
- printf("%d is NOT ARMSTRONG.", original);
- }
- getch();
- return(0);
- }
復(fù)制代碼
|
|