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