C 語言基礎(chǔ)教程

C 語言流程控制

C 語言函數(shù)

C 語言數(shù)組

C 語言指針

C 語言字符串

C 語言結(jié)構(gòu)體

C 語言文件

C 其他

C 語言參考手冊

C程序查找兩個間隔之間的阿姆斯壯數(shù)

C 語言編程實例大全

在此示例中,您將學(xué)習(xí)查找用戶輸入的兩個整數(shù)之間的所有Armstrong數(shù)字。

要理解此示例,您應(yīng)該了解以下C語言編程主題:

一個正整數(shù)稱為阿姆斯特朗數(shù)(n階),如果

abcd... = an + bn + cn + dn +

對于3位的阿姆斯特朗數(shù),每個數(shù)字的立方數(shù)之和等于數(shù)字本身。例如,153是Armstrong的數(shù)字,因為

153 = 1*1*1 + 5*5*5 + 3*3*3

在嘗試該程序之前,請學(xué)習(xí)如何檢查整數(shù)是否為Armstrong數(shù)字。

兩個整數(shù)之間的阿姆斯壯數(shù)

#include <math.h>
#include <stdio.h>
int main() {
   int low, high, number, originalNumber, rem, count = 0;
   double result = 0.0;
   printf("輸入兩個數(shù)字(間隔): ");
   scanf("%d %d", &low, &high);
   printf("%d和%d之間的阿姆斯壯數(shù)字為: ", low, high);


    //將數(shù)字從(low + 1)迭代到(high - 1)
    //在每次迭代中,檢查數(shù)字是否為Armstrong
   for (number = low + 1; number < high; ++number) {
      originalNumber = number;

      //位數(shù)計算
      while (originalNumber != 0) {
         originalNumber /= 10;
         ++count;
      }

      originalNumber = number;

      //結(jié)果包含個位數(shù)的n次冪的和
      while (originalNumber != 0) {
         rem = originalNumber % 10;
         result += pow(rem, count);
         originalNumber /= 10;
      }

      //檢查數(shù)字是否等于單個數(shù)字的n次冪之和
      if ((int)result == number) {
         printf("%d ", number);
      }

      //重置值
      count = 0;
      result = 0;
   }

   return 0;
}

輸出結(jié)果

輸入兩個數(shù)字(間隔): 200
2000
200和2000之間的阿姆斯壯數(shù)字為: 370 371 407 1634

在程序中,外循環(huán)從(low + 1)迭代到(high-1)。在每次迭代中,都會檢查number是否為Armstrong數(shù)。

在外循環(huán)內(nèi)部,首先計算一個整數(shù)的位數(shù),并將其存儲在中count。并且,各個數(shù)字的冪之和存儲在result變量中。

如果number等于result,則該數(shù)字為阿姆斯壯數(shù)字。

注意:您需要在外部循環(huán)的每次迭代中將count和result重置為0。

C 語言編程實例大全

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清