中间数
原题链接:http://118.190.20.162/view.page?gpid=T52
试题编号: | 201612-1 |
试题名称: | 中间数 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: |
问题描述
在一个整数序列a1, a2, …, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。
给定一个整数序列,请找出这个整数序列的中间数的值。 输入格式
输入的第一行包含了一个整数n,表示整数序列中数的个数。
第二行包含n个正整数,依次表示a1, a2, …, an。 输出格式
如果约定序列的中间数存在,则输出中间数的值,否则输出-1表示不存在中间数。
样例输入
6
2 6 5 6 3 5 样例输出
5
样例说明
比5小的数有2个,比5大的数也有2个。
样例输入
4
3 4 6 7 样例输出
-1
样例说明
在序列中的4个数都不满足中间数的定义。
样例输入
5
3 4 6 6 7 样例输出
-1
样例说明
在序列中的5个数都不满足中间数的定义。
评测用例规模与约定
对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ ai ≤ 1000。
|
题解:可以用一个记忆list,存储之前遇到的数,速度会快一点,其他就是暴力模拟整个过程(又是暴力,没错,第一题大概都是模拟叭)
1 n=int(input()) 2 ans=list(map(int, input().split())) 3 4 flag=-1 5 for i in range(n): 6 minn=0 7 maxx=0 8 for j in range(n): 9 if i==j: 10 continue 11 elif ans[j]<ans[i]: 12 minn+=1 13 elif ans[j]>ans[i]: 14 maxx+=1 15 if maxx==minn: 16 flag=ans[i] 17 break 18 19 print(flag)
工资计算
原题链接:http://118.190.20.162/view.page?gpid=T51
试题编号: | 201612-2 |
试题名称: | 工资计算 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: |
问题描述
小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资(扣除五险一金后、未扣税前的工资)为S元,则他应交的个人所得税按如下公式计算:
1) 个人所得税起征点为3500元,若S不超过3500,则不交税,3500元以上的部分才计算个人所得税,令A=S-3500元; 2) A中不超过1500元的部分,税率3%; 3) A中超过1500元未超过4500元的部分,税率10%; 4) A中超过4500元未超过9000元的部分,税率20%; 5) A中超过9000元未超过35000元的部分,税率25%; 6) A中超过35000元未超过55000元的部分,税率30%; 7) A中超过55000元未超过80000元的部分,税率35%; 8) A中超过80000元的部分,税率45%; 例如,如果小明的税前工资为10000元,则A=10000-3500=6500元,其中不超过1500元部分应缴税1500×3%=45元,超过1500元不超过4500元部分应缴税(4500-1500)×10%=300元,超过4500元部分应缴税(6500-4500)×20%=400元。总共缴税745元,税后所得为9255元。 已知小明这个月税后所得为T元,请问他的税前工资S是多少元。 输入格式
输入的第一行包含一个整数T,表示小明的税后所得。所有评测数据保证小明的税前工资为一个整百的数。
输出格式
输出一个整数S,表示小明的税前工资。
样例输入
9255
样例输出
10000
评测用例规模与约定
对于所有评测用例,1 ≤ T ≤ 100000。
|
题解:这里主要注意一下range的范围
税前工资超过税后工资时,但是一定不会超过税前的两倍(所有的段按45%来算就是最大税钱)
Python中 return 语句的函数定义,Python 都会在末尾加上 return None,使用不带值的 return 语句(也就是只有 return 关键字本身),那么就返回 None。
1 T=int(input()) 2 3 def True_S(i,T): 4 S=i 5 A=S-3500 6 tax=0 7 if A<=0: 8 return S 9 elif A<=1500: 10 tax=A*0.03 11 elif A<=4500: 12 tax=45+(A-1500)*0.1 13 elif A<=9000: 14 tax=45+300+(A-4500)*0.2 15 elif A<=35000: 16 tax=45+300+(9000-4500)*0.2+(A-9000)*0.25 17 elif A<55000: 18 tax=45+300+(9000-4500)*0.2+(35000-9000)*0.25+(A-35000)*0.3 19 elif A<=80000: 20 tax=45+300+(9000-4500)*0.2+(35000-9000)*0.25+(55000-35000)*0.3+(A-55000)*0.35 21 elif A>80000: 22 tax=45+300+(9000-4500)*0.2+(35000-9000)*0.25+(55000-35000)*0.3+(80000-55000)*0.35+(A-80000)*0.45 23 24 if S-tax==T: 25 return S 26 27 28 for i in range((T//100)*100,(T//100)*100*2,100): 29 S=True_S(i,T) 30 if S!=None: 31 break 32 print(S) 33
参考链接:
http://c.biancheng.net/view/5659.html