C 語言簡單練習題|循環窮舉


做幾道簡單的C語言題。

(1)

求出 1! + 2! + 3! +...+n!;

#include <stdio.h>

int nF (int n);
int plus_nF(int n);

int main(void)
{
   printf("%d\n", plus_nF(10));

   return 0;
}
/*把N個n的階乘加起來*/
int plus_nF(int n)
{
   int result = 0;

   for (int i = 1; i <= n; i++ ) {
       result = result + nF(i);
   }

   return result;
}
/*求N階乘函數*/
int nF (int n)
{
   int r = 1;

   for (int i = 1; i <= n; i++) {
       r = r * i;
   }

   return r;
}

輸出:

4037913

(2)

求出用 50 元,20 元, 10 元換算成 100 元的有幾種方式?

for循環窮舉法:

for (int i = 0; i <= 100 / 50; i++) {
     for (int j = 0; j <= 100 / 20; j++) {
         for (int k = 0; k <= 100 / 10; k++) {
             if ( i * 50 + j * 20 + k * 10 == 100 ) {
                 printf ("%d張50元|%d張20元|%d張10元。\n", i, j, k);
             }
         }
     }
 }

輸出:

0張50元|0張20元|10張10元。
0張50元|1張20元|8張10元。
0張50元|2張20元|6張10元。
0張50元|3張20元|4張10元。
0張50元|4張20元|2張10元。
0張50元|5張20元|0張10元。
1張50元|0張20元|5張10元。
1張50元|1張20元|3張10元。
1張50元|2張20元|1張10元。
2張50元|0張20元|0張10元。

(3)

百錢買百雞,公雞 5 元一只,母雞 3 元一只,小雞 1 元 3 只。百錢買百雞的有哪些情況?

依然窮舉法。

for (int i = 0; i < 100 / 5; i++) {
     for (int j = 0; j < (int) ( 100 / 3); j ++) {
         if ( (100 - i - j) % 3 == 0 && i * 5 + j * 3 +  (100 - i - j) / 3 == 100 )
             printf("公雞%d只|母雞%d只|小雞%d只\n", i, j, 100 - i - j);
     }
 }

輸出:

公雞0只|母雞25只|小雞75只
公雞4只|母雞18只|小雞78只
公雞8只|母雞11只|小雞81只
公雞12只|母雞4只|小雞84只

(4)

求出 1,2,3,4四個數能組成哪些互不相同的三位數?

依然窮舉法。

int a = 1, b = 2, c = 3, d = 4;
int arr[4] = {a, b, c, d};

int count = 0;
for (int i = 0; i < 4; i++)
{
   for (int j = 0; j < 4; j++) {
       for (int k = 0; k < 4; k++) {
           if (i != j && i != k && j != k) {
               printf("%d%d%d\t", arr[i], arr[j], arr[k]);
               count++;
               if (count % 5 == 0) {
                   printf("\n");
               }
           }
       }
   }
}

輸出:

123     124     132     134     142
143     213     214     231     234
241     243     312     314     321
324     341     342     412     413
421     423     431     432

題目來自《手把手教你學C語言》。




參考:
1.《手把手教你學C語言》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM