运行下面程序,输入20,输出的结果是( )。
n = int(input())
if n % 2 == 0:
print(n // 2 * 10 + 5)
else:
print((n // 2 + 1) * 10)
正确答案:A
运行下面程序,输入4,输出的结果是( )。
n = int(input())
a = 1
for i in range(2, n + 1):
a = a + i
print(a)
正确答案:B
运行下面程序,输入11,输出的结果是( )。
n = int(input())
i = 0
while n > 1:
if n % 3 == 0:
n = n // 3
else:
n = n // 3 + 1
i += 1
print(i)
正确答案:C
题目名称:环线地铁
题目描述:
环线地铁的轨道首尾相连,共有n座车站,用数字0到n-1进行编号。
已知任何相邻车站之间的距离,a[i]表示编号为i的车站和编号为(i+1)%n的车站之间的距离。例如,下图是总共有5座车站的环线地铁的线路示意图:
地铁双向发车,你可以选择按顺时针和逆时针的方向行驶。
请计算从出发点x到目的地y之间的最短距离。
输入:
第一行一个正整数n(2<=n<=100),为车站数量;
第二行一个正整数x(0<=x<=n-1),为出发点车站编号;
第三行一个正整数y(0<=y<=n-1),为目的地车站编号;
第四行,由n个不大于100的整数组成,a[i]表示编号为i的车站和编号为(i+1)%n的车站之间的距离,相邻两个整数之间用一个空格隔开。
输出:
一个整数,表示x到y的最小距离。
输入样例:
4
0
2
1 2 3 4
输出样例:
3
参考程序1:
n = int(input())
x = int(input())
y = int(input())
a = [int(i) for i in input().split(' ')]
if x > y: #保证x x, y = y, x sum1 = 0 for i in range(x, y): sum1 += a[i] print(min(sum1, sum(a) - sum1)) 参考程序2: n = int(input()) x = int(input()) y = int(input()) a = [int(i) for i in input().split(' ')] t = sum(a[min(x, y) : max(x, y)]) print(min(sum(a) - t, t)) 测试数据: 1.in 4 0 2 1 2 3 4 1.out 3 2.in 5 2 3 9 10 8 1 1 2.out 8 3.in 6 1 6 7 3 9 10 1 7 3.out 7 4.in 8 7 3 4 7 1 5 1 6 2 7 4.out 14 5.in 10 9 5 5 4 7 3 10 10 5 10 8 1 5.out 30