我在codeforce上尝试了一个简单的问题
http://codeforces.com/problemset/problem/389/A
这是我的解决方案
def main():
input_size = int(input())
numbers = []
for i in range(input_size):
#print('Enter ',i,' value')
numbers.append(int(input()))
#print(numbers)
zeros_count,i = 0,0
while True:
#print(numbers)
i=i%(input_size-1)
if numbers[i]<numbers[i+1]:
numbers[i+1] = numbers[i+1]-numbers[i]
#print(i+1,'-',i,end='\n\n')
zeros_count = 0
elif numbers[i]>numbers[i+1]:
numbers[i]=numbers[i]-numbers[i+1]
#print(i,'-',i+1,end='\n\n')
zeros_count = 0
if numbers[i] == numbers[i+1]:
zeros_count+=1
#print(i,'and',i+1,'are equal');
i+=1
if zeros_count == input_size-1:
break
if zeros_count == 20:
break;
s = 0;
for i in range(0,input_size,1):
s+=numbers[i];
print(s);
main()
这段代码在我的计算机上工作正常,但是当我提交它时,他们说第一种情况下的运行时错误是2 1 2.很可能我输入输入或输出的方式有问题。
你能告诉我我在哪里做错了。当我试图在codechef中提交代码时出现类似的问题
答案 0 :(得分:0)
首先,你的逻辑错了。您的代码在while循环中无限运行。 这是我在python中的正确代码
n=int(input())
a=map(int,raw_input().split())
a.sort()
while(True):
if(a[0]==a[n-1]):
break;
for i in range(n-1,0,-1):
if(a[i]>a[i-1]):
a[i]=a[i]-a[i-1]
a.sort()
print sum(a)