第一题
描述
输入一个数字n作为合格标准,然后,输入一系列的数字,每次输入换行表示,空换行结束,输出合格率。
合格率指输入元素中合格元素与全部元素的比值。
输入输出示例
- 示例1 60(enter)50(enter)75(enter)90 (这里有一个换行 ) 合格率为66.67%
- 示例2 75(enter)65(enter)70(enter)90 (这里有一个换行 ) 合格率为33.33%
我的代码:
k=eval(input())
cnt1=0
cnt2=0
for i in range(100):
t=input()
if t!='':
#起初这里我用了'\n',会出现错误,要注意。
t=eval(t)
cnt1+=1
if t>=k:
cnt2+=1
else:
break
if cnt1==0:
print("合格率为100.00%")
else:
s=100*cnt2/cnt1
print("合格率为{:.2f}%".format(s))
网上参考代码:
n=eval(input())
List=[]
i=input()
while i !='':
List.append(eval(i))
i=input()
sum_up=0
for i in List:
if i>=n:
sum_up+=1
if len(List)==0:
print("合格率为100.00%")
else:
x=100*(sum_up/len(List))
print("合格率为:{:.2f}%".format(x))
#一点总结:掌握用list的新的解题思路。
第二题
描述
四叶玫瑰数是4位数的自幂数。自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数,3位数的自幂数被称为水仙花数)
输入输出格式
没有输入。
输出:
1111
2222
3333
我的代码
for k in range(1000,10000):
k1=int(k%10)
k2=int((k%100-k1)/10)
k4=int(k/1000)
k3=int(k/100-10*k4) #注意要用int()函数转换格式否则会出现错误!
if k1**4+k2**4+k3**4+k4**4==k:
print("{}".format(k))
#起初上面这一行我写作 print("{}\n".format(k)),随后由于格式问题未通过检查
总结
注意”与‘\n’的泣别引发的格式控制问题