如果一個數字等于其自身數字的總和乘以給定數字中數字位數的冪,則稱為阿姆斯特朗 (Armstrong)或水仙花數 (Narcissistic) 數字。
例如,數字153是阿姆斯特朗數字,因為:1^3 + 5^3 + 3^3 = 153
類似地,1634也是阿姆斯特朗數,即 1^4 + 6^4 + 3^4 + 4^4 = 1634
數字1到9也是阿姆斯特朗數字。
- #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 計算給定數字中的位數 */
- while(number!=0)
- {
- digit++;
- number = number/10;
- }
-
- /* After execution above loop number becomes 0 執行后,循環號變為0
- So copying original number to variable number 因此將原始變量復制到可變 變量 */
-
- 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);
- }
復制代碼
|