solution.md 1021 字节
Newer Older
每日一练社区's avatar
每日一练社区 已提交
1
# 抽签
F
fix bug  
feilong 已提交
2

每日一练社区's avatar
每日一练社区 已提交
3
X星球要派出一个5人组成的观察团前往W星。
每日一练社区's avatar
每日一练社区 已提交
4

每日一练社区's avatar
每日一练社区 已提交
5
其中:
每日一练社区's avatar
每日一练社区 已提交
6

每日一练社区's avatar
每日一练社区 已提交
7
A国最多可以派出4人。
每日一练社区's avatar
每日一练社区 已提交
8

每日一练社区's avatar
每日一练社区 已提交
9
B国最多可以派出2人。
每日一练社区's avatar
每日一练社区 已提交
10

每日一练社区's avatar
每日一练社区 已提交
11
C国最多可以派出2人。
每日一练社区's avatar
每日一练社区 已提交
12

每日一练社区's avatar
每日一练社区 已提交
13 14 15 16
....

那么最终派往W星的观察团会有多少种国别的不同组合呢?

每日一练社区's avatar
每日一练社区 已提交
17
下面的程序解决了这个问题。
每日一练社区's avatar
每日一练社区 已提交
18

每日一练社区's avatar
每日一练社区 已提交
19
请你补全代码中空白的部分:
F
fix bug  
feilong 已提交
20

每日一练社区's avatar
每日一练社区 已提交
21
```c
每日一练社区's avatar
每日一练社区 已提交
22 23
#include <bits/stdc++.h>
using namespace std;
F
fix bug  
feilong 已提交
24

每日一练社区's avatar
每日一练社区 已提交
25 26 27
#define N 6
#define M 5
#define BUF 1024
F
fix bug  
feilong 已提交
28

每日一练社区's avatar
每日一练社区 已提交
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
void f(int a[], int k, int m, char b[])
{
    int i, j;

    if (k == N)
    {
        b[M] = 0;
        if (m == 0)
            printf("%s\n", b);
        return;
    }

    for (i = 0; i <= a[k]; i++)
    {
        for (j = 0; j < i; j++)
            b[M - m + j] = k + 'A';
        __________________
    }
}
int main()
{
    int a[N] = {4, 2, 2, 1, 1, 3};
    char b[BUF];
    f(a, 0, M, b);
    return 0;
}
每日一练社区's avatar
每日一练社区 已提交
55 56 57 58
```


## 答案
F
fix bug  
feilong 已提交
59

每日一练社区's avatar
每日一练社区 已提交
60
```c
每日一练社区's avatar
每日一练社区 已提交
61
f(a, k + 1, m - i, b);
每日一练社区's avatar
每日一练社区 已提交
62 63 64
```
## 选项

F
fix bug  
feilong 已提交
65

每日一练社区's avatar
每日一练社区 已提交
66
### A
F
fix bug  
feilong 已提交
67

每日一练社区's avatar
每日一练社区 已提交
68
```c
每日一练社区's avatar
每日一练社区 已提交
69
f(a, k, m - i, b);
每日一练社区's avatar
每日一练社区 已提交
70 71 72
```

### B
F
fix bug  
feilong 已提交
73

每日一练社区's avatar
每日一练社区 已提交
74
```c
每日一练社区's avatar
每日一练社区 已提交
75
f(a, k - 1, m - i, b);
每日一练社区's avatar
每日一练社区 已提交
76 77 78
```

### C
F
fix bug  
feilong 已提交
79

每日一练社区's avatar
每日一练社区 已提交
80
```c
每日一练社区's avatar
每日一练社区 已提交
81
f(a, k + 1, m + i, b);
每日一练社区's avatar
每日一练社区 已提交
82
```