C++ 代码错误分析:大王编号计算
这段代码有两个地方出现了错误:
-
在内层循环中,条件'110001<=a[i+kn]'有误。该条件应该为'i+kn < 110001',表示数组'a'的索引不能越界。
-
在输出结果时,应该输出'a[k+mn-1]',而不是'a[k+mn-m]'。因为数组索引是从0开始的,所以需要将结果减去1。
以下是修改后的代码:
#include<iostream>
using namespace std;
int main()
{
int n = 0, k = 0, m = 0;
cin >> n >> k >> m;
int a[110001];
for (int i = 0; i <= n - 1; i++)
{
a[i] = i;
for (int j = 1; i + j * n < 110001; j++)
a[i + j * n] = a[i];
}
cout << a[k + m * n - 1];
return 0;
}
现在,代码应该能够正确计算出大王的编号。
原文地址: https://www.cveoy.top/t/topic/Prg 著作权归作者所有。请勿转载和采集!