T1021 甲流疫情死亡率
甲流疫情死亡率 - 题库 - 计蒜客题号:T1021;知识点:输入和输出;难度:入门;蒜头君最近研究甲流,发现:甲流并不可怕,在中国,它的死亡率并不是很高。请根据截止 $2009$ 年 $12$ 月 $22$ 日各省报告的甲流确诊数和死亡数,计算甲流在各省的死亡率。输入格式输入仅一行,有两个整数,第一个为确诊数,第二个为死亡数,都在https://nanti.jisuanke.com/t/T1021
a,b=map(int,input().split())
print('%.3f%%'%((b/a)*100))
这一题其实没什么,主要是一个之前不怎么见到的新的格式化输出方法
核心是要输出(b/a),但先将其扩大100倍后转为百分数输出:
第一个【%】表示输出百分数,【.3f】表示保留小数点后保留三位小数点,【%%】有点类似于转义的类似意思
T1125判断字符是否为回文
判断字符串是否为回文 - 题库 - 计蒜客题号:T1125;知识点:字符串;难度:普及T1;输入一个字符串,输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。输入格式输入为一行字符串(字符串中没有空白字符,字符串长度不超过 $100$)。输出格式如果字符串是回文,输出https://nanti.jisuanke.com/t/T1125
str=input()
if str[::-1]==str:
print('yes')
else:
print('no')
考察倒叙的列表
T1103统计数字字符个数
统计数字字符个数 - 题库 - 计蒜客题号:T1103;知识点:字符串;难度:入门;输入一行字符,统计出其中数字字符的个数。输入格式一行字符串,总长度不超过 $255$。输出格式输出为 $1$ 行,输出字符串里面数字字符的个数。https://nanti.jisuanke.com/t/T1103
str=input()
num=0
for i in str:
if i in '0123456789':
num+=1
print(num)
这里我用了对字符串的遍历(对每个字符进行遍历)
因为这里想到字符串不仅仅可以看作为简单数据类型,也可作为复合数据类型。
T1059
满足条件的数累加 - 题库 - 计蒜客题号:T1059;知识点:条件分支、循环;难度:入门;蒜头君喜欢 $17$ 这个数字,他想知道正整数 $m$ 和 $n$ 之间(包括 $m$ 和 $n$)能被 $17$ 整除的数累加的结果是多少。其中,$0 < m < n < 1000$。输入格式一行,包含两个整数 $m$ 和 https://nanti.jisuanke.com/t/T1059
m,n=list(map(int,input().split()))
ls=[]
for i in range(m,n+1):
if i%17==0:
ls.append(i)
print(sum(ls))
考察基本的遍历而已
T1118
删除单词后缀 - 题库 - 计蒜客题号:T1118;知识点:字符串;难度:普及T1;给定一个单词,如果该单词以er、ly或者ing后缀结尾, 则删除该后缀(题目保证删除后缀后的单词长度不为 $0$),否则不进行任何操作。输入格式输入一行,包含一个单词(单词中间没有空格,每个单词最大长度为 $32$)。输出格式输出按照题目要求处理后https://nanti.jisuanke.com/t/T1118
s=input()
if s[-2:]=='er' or s[-2:]=="ly":
print(s[:-2])
elif s[-3:]=='ing':
print(s[:-3])
else:
print(s)
1.这里容易犯一个错误:即
print(s.replace(s[-2:],''))
这里其实明显在想当然罢了,python的惰性计算原则是:只在需要的时候才去计算值。因此这里python先计算出s[-2:]的值为‘er’,然后再把所有的‘er’均替换为了空串,因而再输入'referer'时会返回'ref'(将两个‘er’都删除)
2.还有一个常见错误为
if s[-2:]=='er' or 'ly'
然而其实这样就是因为对python的基础语法掌握不牢导致的,or后面应该加上完整的语句,而不同于我们熟悉的自然语言,否则python判定为if ‘ly’这个语句总是值为真,因为后面的elif语句形同虚设
T1046
判断闰年 - 题库 - 计蒜客题号:T1046;知识点:条件分支;难度:入门;小蒜蒜想知道某年是否为闰年。公历纪年法中,能被 $4$ 整除的大多是闰年,但能被 $100$ 整除而不能被 $400$ 整除的年份不是闰年,如 $1900$ 年是平年,$2000$ 年是闰年。输入格式输入只有一行,包含一个整数 $a(0 < ahttps://nanti.jisuanke.com/t/T1046
y=int(input())
if y%4==0:
if y%100==0 and y%400!=0:
print('N')
else:
print("Y")
else:
print("N")
依据题意判断条件即可,需要注意条件语句的顺序,即分清哪些时优先判定的,哪些需要后手判定
T1160
甲流病人初筛 - 题库 - 计蒜客题号:T1160;知识点:条件分支、循环、字符串;难度:普及T1;目前正是甲流盛行时期,为了更好地进行分流治疗,医院在挂号时要求对病人的体温和咳嗽情况进行检查,对于体温超过 $37.5$ 度(含等于 $37.5$ 度)并且咳嗽的病人初步判定为甲流病人(初筛)。现需要统计某天前来挂号就诊的病人中有多https://nanti.jisuanke.com/t/T1160
num=int(input())
initialls=[]
finalls=[]
for i in range(num):
initialls.append(list(map(str,input().split())))
for each in initialls:
if int(each[2]) and eval(each[1])>=37.5:
finalls.append(each[0])
for i in finalls:
print(i)
print(len(finalls))
这里我用了两个列表,首先是将所有的病人初步放进initialls中,然后经过判断放到finalls列表中,最后finalls的len值即为符合条件的病人数。(当然为了节约空间也可以将finalls列表省去,仅仅对原列表进行操作,但由于现在的计算机内存往往很大,所以没有这样考虑,而是使程序更为清晰)
T1094
年龄与疾病 - 题库 - 计蒜客题号:T1094;知识点:条件分支、循环、数组;难度:入门;某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理,按照 $0-18$、$19-35$、$36-60$、$61$ 以上(含 $61$)四个年龄段统计的患病人数占总患病人数的比例。输入格式共 $2$ 行,第一行为https://nanti.jisuanke.com/t/T1094
num=int(input())
ls=list(map(int,input().split()))
a,b,c,d=0,0,0,0
for each in ls:
if each>=61:
d+=1
elif each >=36:
c+=1
elif each >=19:
b+=1
else:
a+=1
for cha in [a,b,c,d]:
print("%.2f%%"%((cha/num)*100))
采用a,b,c,d四个变量分别对应四个年龄段进行计数,这里要注意条件判断的顺序
T2115
[NOIP2002]级数求和 - 题库 - 计蒜客题号:T2115;来源:NOIP普及组/CSP-J;知识点:数学、模拟;难度:普及T1;已知:$S_n= 1+1/2+1/3+ cdots + 1 /n$。显然对于任意一个整数 $K$,当 $n$ 足够大的时候,$S_n$ 大于 $K$。现给出一个整数 $K(1 le k le 15)$,要https://nanti.jisuanke.com/t/T2115
K=int(input())
n=0
s=0
while s<=K:
n+=1
s+=1/n
print(n)
T1376
青蛙爬井 - 题库 - 计蒜客题号:T1376;知识点:循环、数学、模拟;难度:普及T1;有一口深度为 $high$ 米的水井,井底有一只青蛙,它每天白天能够沿井壁向上爬 $up$ 米,夜里则顺井壁向下滑 $down$ 米,若青蛙从某个早晨开始向外爬,对于任意指定的 $high$、$up$ 和 $down$ 值(均为自然数),https://nanti.jisuanke.com/t/T1376
high,up,down=list(map(int,input().split()))
day=0;remain=high
while remain>0:
day+=1
remain-=up
if remain<=0:
break
remain+=down
print(day)
这里用remain表示剩余的高度,然后逐次进行模拟,当然也可以用整体法考虑然后对每天的整体进行另行判定是否可以截至



