【发布时间】:2016-03-26 21:37:47
【问题描述】:
我知道这已经被问过了,但我还没有找到并回答。 这是我的代码:
#include <cstdio>
#include <vector>
using namespace std;
int a[510];
int main()
{
int n, p;
bool rez;
while(1)
{
p = 0;
rez = 1;
scanf("%d", &n);
if(n == -1) break;
for(int i = 0; i < n; i++) scanf("%d", &a[i]);
// printf("a");
for(int i = n-1; i >= 0; i--)
{
if((a[i]+p)%i)
{
rez = 0;
break;
}
p++;
}
if(rez) printf("S\n");
else printf("N\n");
}
return 0;
}
除测试用例外,所有测试用例都可以正常工作: 4 1 1 3 0 但 4 1 0 3 1 作品。 同样在有问题的测试用例中,我插入了 printf("a"); 但是程序不打印它,这表明问题发生在该行之前。但是,如果我删除其余代码,一切正常。
【问题讨论】:
-
检查
i此处if((a[i]+p)%i)是否变为零。 -
尝试在调试器中单步执行。发生了一些奇怪的事情。你根本没有浮点数
-
请正确描述您的代码应该做什么,以及有问题的输入是什么。我不知道“测试用例 4 1 1 3 0”是什么意思。是你输入的数字吗,包括空格?
标签: c++