gpt4 book ai didi

c++ - 测试 1 的运行时错误(Codeforces)

转载 作者:行者123 更新时间:2023-11-30 05:41:36 25 4
gpt4 key购买 nike

使用下面的链接

http://codeforces.com/problemset/problem/556/B

下面的代码使用 GNU C++11 编译器并且该代码运行良好但我不知道它是如何工作的?

#include<iostream>
#include<conio.h>
#include<windows.h>
int test(long int n,long int number[])
{
int flag=0;
for(int i=0;i<n;i++)
{
if(number[i+1]==number[i]+1)
flag++;
}
if(flag==n-1)
return 1;
else
return 0;
}
void rot_gears(long int n,long int number[])
{
system("cls");
int t;
for(long z=0;z<n*n;z++)
{
for(long i=0;i<n;i++)
{
if(i%2==0)
{
if(number[i]==n-1)
{
number[i]=0;
}
else
number[i]++;
}
else if(i%2!=0)
{
if(number[i]==0)
number[i]=n-1;
else
number[i]--;
}
}
t=test(n,number);
if(t==1)
break;

// output(n,number);
//cout<<"\n\n";
}
if(t)
std::cout<<"YES";
else
std::cout<<"NO";
}
int main()
{
long int n,teeth,number[10000];
std::cin>>n;
std::cin>>teeth;
for(long int i=n-1;i>=0;i--)

{
number[i]=teeth%10;
teeth/=10;
}

// output(n,number);
rot_gears(n,number);
return 0;

}

最佳答案

我相信没有办法执行system("cls");在判断机上 - 只需将其从代码中删除即可。

i == n - 1 时你也越界了:

for(int i=0;i<n;i++)
{
if(number[i+1]==number[i]+1)
// ^^^^^ here

尽管从技术上讲你不会超出数组边界,因为 n <= 1000 ,但无论如何您正在访问未初始化的数组元素。

关于c++ - 测试 1 的运行时错误(Codeforces),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31099452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com