其他分享
首页 > 其他分享> > C 语言简单练习题|循环穷举

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语言》

标签:练习题,10,20,int,50,++,循环,穷举,100
来源: https://www.cnblogs.com/huvjie/p/15339466.html