做幾道簡單的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語言》