📅  最后修改于: 2023-12-03 14:58:28.251000             🧑  作者: Mango
考虑以下程序段:
void f(int n) {
if(n%2 != 0)
throw new RuntimeException("N must be even");
int[] a = new int[n];
for(int i=0; i<n; i++)
a[i] = i;
int[] b = new int[n];
for(int j=0; j<n/2; j++)
b[j] = a[j] / (j+1);
for(int k=0; k<n; k++)
System.out.print(b[k] + " ");
}
考虑给定的整数 n,程序段 f(n)
的输出是什么?
返回整数数组 b
的元素,用空格分隔。
给定一个整数 n
,程序段会执行以下步骤:
n
是奇数,则抛出运行时异常 "N must be even"。n
的整型数组 a
。a
的每个元素赋值,值为其索引值。n
的整型数组 b
。a
数组中的元素除以 (j+1)
赋值给 b
数组的前 n/2
个元素。b
的每个元素,以空格分隔。由于 b
数组初始化的长度为 n
,而只有前 n/2
个元素有有效值,因此最后输出的数组 b
的长度仍然为 n
。
所以程序段 f(n)
的输出是 b
数组的元素,共 n
个,用空格分隔。
对于输入 n = 6
,程序段的输出为:
0 0 1 1 1 3
对于输入 n = 7
,程序段会抛出运行时异常 "N must be even"。