我正在尝试做Timus Online Judge 问题 #1493,“离幸福一步”:
Vova买了一张13路电车的车票,数了数车票号码的前三位和后三位的总和(数字有六位)。事实证明,这些总和正好相差 1。“我离幸福只有一步之遥,”沃瓦想,“无论是上一张票还是下一张票,都是幸运的。” 他是对的吗?
输入
输入包含票号。该数字由六位数字组成,其中一些可以是零。保证 Vova 计数正确,即前三位数字的总和与后三位数字的总和相差一个。
输出
如果 Vova 正确,则输出“Yes”,否则输出“No”。
样品
input output -------------------- 715068 Yes 445219 No 012200 Yes
暗示
所有的电车车票都有六位数。如果票的前三位数字之和等于其后三位数字之和,则该票被认为是幸运的。
这是我的 Visual C(2010) 格式的代码。
#include <stdio.h>
int main()
{
int arr[5],arr1[5],arr2[5],i,a=0,b=0,n,x=0,y=0;
printf("Enter number");
scanf("%d",&n);
x=n+1;
y=n-1;
while(n>0)
{
for(i=5;i>=0;i--)
{
arr[i]=n%10;
n=n/10;
}
}
a=( arr[0]+arr[1]+arr[2]);
b=(arr[3]+arr[4]+arr[5]);
if((a-b==1)||(a-b==-1))
{
while(x>0)
{
for(i=5;i>=0;i--)
{
arr1[i]=x%10;
x=x/10;
}
}
while(y>0)
{
for(i=5;i>=0;i--)
{
arr2[i]=y%10;
y=y/10;
}
}
if ((arr1[0]+arr1[1]+arr1[2]==arr1[3]+arr1[4]+arr1[5]) ||
(arr2[0]+arr2[1]+arr2[2]==arr2[3]+arr2[4]+arr2[5]))
{ printf("Yes");}
else
{ printf("No");}
}
else
{
printf("No");
}
return 0;
}
以上代码是我提交的,在Timus Online Judge中收到错误答案的代码。提交的格式是 Visual C (2010)。我在我的电脑上使用 Dev-C++,所以我在我的电脑上运行的代码如下:
#include <stdio.h>
#include <conio.h>
main()
{
int arr[5],arr1[5],arr2[5],i,a=0,b=0,n,x=0,y=0;
printf("Enter number");
scanf("%d",&n);
x=n+1;
y=n-1;
while(n>0)
{
for(i=5;i>=0;i--)
{
arr[i]=n%10;
n=n/10;
}
}
a=( arr[0]+arr[1]+arr[2]);
b=(arr[3]+arr[4]+arr[5]);
if((a-b==1)||(a-b==-1))
{
while(x>0)
{
for(i=5;i>=0;i--)
{
arr1[i]=x%10;
x=x/10;
}
}
while(y>0)
{
for(i=5;i>=0;i--)
{
arr2[i]=y%10;
y=y/10;
}
}
if ((arr1[0]+arr1[1]+arr1[2]==arr1[3]+arr1[4]+arr1[5]) ||
(arr2[0]+arr2[1]+arr2[2]==arr2[3]+arr2[4]+arr2[5]))
{ printf("Yes");}
else
{ printf("No");}
}
else
{
printf("No");
}
getch();
}
我没有收到任何编译错误。该代码在我的 Dev-C++ 编译器上完美运行,并且还给了我正确的输出。问题是当我以 Visual C 格式提交此代码时,他们告诉我这是一个错误的答案。