共48道题,当前是第28

初赛真题

01 #include <iostream>
02 using namespace std;
03 
04 int n, ans, C[105][105];
05 
06 int main()
07 {
08     cin >> n;
09     C[0][0] = 1;
10     for (int i = 1; i <= n; i++)
11     {
12         C[i][0] = 1;
13         for (int j = 1; j <= i; j++)
14             C[i][j] = C[i - 1][j - 1] + C[i - 1][j];
15     }
16     for (int i = 0; i <= n; i++)
17         for (int j = 0; j <= i; j++)
18             ans += C[i][j];
19     cout << ans;
20     return 0;
21 }
假设输入的 n 是 int 范围内的正整数,请回答下列问题



1. B。 当 $n = 100$ 时, $ans$ 会超过 int 上限。
2. A。 $17$ 行, 答案对每一行只加 $[0, i]$ 的值。故对答案没有影晌 。
3. B。 影晌答案 , 因为 C[i][j] = C[i - 1][j - 1] + C[i - 1][j]; 。
4. A。 当 $n = 100$ 时, $ans$ 会超过 int 上限。
5. C。 程序代入数据后, 得出答案为 $255$。
6. D。 $n$ 最大可以为 $30$。

Question

1. 程序在运算过程中所有涉及到的数字均不会超过 int 上限。

2. 将第 13 行的 j<=i 改为 j<=n不影响程序的结果()

3. 将第 9 行放在现在的第 15 行后不影响程序的结果()

4. 如果输入的 n 为 100,程序可能无法输出正确的结果()

5. 若输入的 n 为 7,输出为()

6. 为了保证所有整数均不溢出,n 最大可以是()