CCF201712-Python题解
最小差值
原题链接:http://118.190.20.162/view.page?gpid=T68
试题编号: | 201712-1 |
试题名称: | 最小差值 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述
给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。
输入格式
输入第一行包含一个整数n。
第二行包含n个正整数,相邻整数之间使用一个空格分隔。
第二行包含n个正整数,相邻整数之间使用一个空格分隔。
输出格式
输出一个整数,表示答案。
样例输入
5
1 5 4 8 20
1 5 4 8 20
样例输出
1
样例说明
相差最小的两个数是5和4,它们之间的差值是1。
样例输入
5
9 3 6 1 3
9 3 6 1 3
样例输出
0
样例说明
有两个相同的数3,它们之间的差值是0.
数据规模和约定
对于所有评测用例,2 ≤ n ≤ 1000,每个给定的整数都是不超过10000的正整数。
题解:暴力模拟,寻找每个数的最小差值,最后找min(每个数的最小 )
1 n=int(input()) 2 a=list(map(int, input().split())) 3 4 minn=10001 5 for i in range(n): 6 for j in range(i+1,n): 7 tmp=abs(a[i]-a[j]) 8 if tmp<minn: 9 minn=tmp 10 print(minn)
游戏
原题链接:http://118.190.20.162/view.page?gpid=T67
试题编号: | 201712-2 |
试题名称: | 游戏 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: |
问题描述
有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。
游戏开始,从1号小朋友开始顺时针报数,接下来每个小朋友的报数是上一个小朋友报的数加1。若一个小朋友报的数为k的倍数或其末位数(即数的个位)为k,则该小朋友被淘汰出局,不再参加以后的报数。当游戏中只剩下一个小朋友时,该小朋友获胜。 例如,当n=5, k=2时: 1号小朋友报数1; 2号小朋友报数2淘汰; 3号小朋友报数3; 4号小朋友报数4淘汰; 5号小朋友报数5; 1号小朋友报数6淘汰; 3号小朋友报数7; 5号小朋友报数8淘汰; 3号小朋友获胜。 给定n和k,请问最后获胜的小朋友编号为多少? 输入格式
输入一行,包括两个整数n和k,意义如题目所述。
输出格式
输出一行,包含一个整数,表示获胜的小朋友编号。
样例输入
5 2
样例输出
3
样例输入
7 3
样例输出
4
数据规模和约定
对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ k ≤ 9。
|
题解:模拟报数的整个过程,这里用列表模拟
1 n, k = input().split() 2 n, k = int(n), int(k) 3 4 5 c = [] 6 num=1 7 count=0 8 for i in range(n): 9 c+=[[num,1]] 10 num+=1 11 if(c[i][0]%k==0 or c[i][0]%10==k)and count!=n-1: 12 c[i][1]=0 13 count+=1 14 15 16 while(count<n-1): 17 for i in range(n): 18 if(c[i][1]==1) and count!=n-1: 19 c[i][0]=num 20 num+=1 21 if(c[i][0]%k==0 or c[i][0]%10==k)and count!=n-1: 22 c[i][1]=0 23 count+=1 24 25 for i in range(n): 26 if c[i][1]==1: 27 print(i+1) 28 break 29
每次写,每次不同的写法
1 n,k=input().split() 2 n,k=int(n),int(k) 3 4 a=[] 5 num=n 6 count=n 7 for i in range(1,n+1): 8 a+=[[1,i]] 9 if (i%k==0 or i%10==k) and count!=1: 10 a[i-1][0]=0 11 count-=1 12 13 while count!=1: 14 for i in range(n): 15 if a[i][0]==1: 16 num+=1 17 if num%k==0 or num%10==k: 18 a[i][0]=0 19 count-=1 20 21 for i in range(n): 22 if a[i][0]==1: 23 print(a[i][1])