1.【例4.1】for循环求和
【题目描述】
利用for循环。计算输出1+2+3+...+n
的和。
【输入】
输入n
。
【输出】
如题述,之和。
【输入样例】
10
【输出样例】
55
【提示】
【数据规模及约定】
对于100%的数据,1≤n≤100。
i=1
n=int(input())
sun=0
for i in range(n+1):
sun=sun+i
i+=1
print(sun)
2.2017:【例4.2】输出偶数
2017:【例4.2】输出偶数
【题目描述】
按照由小到大的顺序,输出1∼n
之间的所有偶数。
【输入】
输入n
。
【输出】
输出为一行,各个偶数之间用一个空格隔开。
【输入样例】
10
【输出样例】
2 4 6 8 10
【提示】
【数据规模及约定】
对于所有数据,1≤n≤100
。
n=int(input())
sun,sui=0,0
for i in range (1,n+1):
if i%2==0:
print(i,end=' ')
3.2018:【例4.3】输出奇偶数之和
【题目描述】
利用for循环,分别输出1∼n
之间的所有奇数的和、偶数的和。
【输入】
输入n
。
【输出】
输出为一行,两个数(用一个空格隔开),偶数之和与奇数之和。
【输入样例】
10
【输出样例】
30 25
【提示】
【数据规模及约定】
对于所有数据,1≤n≤100
。
n=int(input())
sun,sui=0,0
for i in range (n+1):
if i%2==0:
sun=sun+i
elif i%2!=0:
sui=sui+i
i+=1
print(sun,sui)
4.2019:【例4.4】求阶乘
【题目描述】
利用for循环求n!
的值。
提示,n!=1×2×...×n
。
【输入】
输入一个正整数n
。
【输出】
输出n!
的值。
【输入样例】
4
【输出样例】
24
【提示】
【数据规模及约定】
对于所有数据,1≤n≤20
。
n=int(input())
sun=1
sui=1
for i in range (1,n+1):
sui=i
sun=sun*sui
i=i+1
print(sun)
5.1059:求平均年龄
【题目描述】
班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。
【输入】
第一行有一个整数n
(1≤n≤100
),表示学生的人数。其后n
行每行有1
个整数,表示每个学生的年龄,取值为15
到25
。
【输出】
输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。
【输入样例】
2
18
17
【输出样例】
17.50
n=int(input())
sun=0
sui=0
for i in range(n):
a=float(input())
sun=sun+a
sui=sun
sui=sui/n
print("%.2f"%sui)
6.1060:均值
1060:均值
【题目描述】
给出一组样本数据,包含n个浮点数,计算其均值,精确到小数点后4位。
【输入】
输入有两行,第一行包含一个整数n(n小于100),代表样本容量;第二行包含n个绝对值不超过1000的浮点数,代表各个样本数据。
【输出】
输出一行,包含一个浮点数,表示均值,精确到小数点后4位。
【输入样例】
2
1.0 3.0
【输出样例】
2.0000
n=int(input())
lb=list(map(float,input().split(' ')))
sun=0
for i in lb:
sun=sun+i
print("%.4f"%(sun/n))
7.1061:求整数的和与均值
1061:求整数的和与均值
【题目描述】
读入n(1≤n≤10000)个整数,求它们的和与均值。
【输入】
输入第一行是一个整数n,表示有n个整数。
第2~n+1行每行包含1个整数。每个整数的绝对值均不超过10000。
【输出】
输出一行,先输出和,再输出平均值(保留到小数点后5位),两个数间用单个空格分隔。
【输入样例】
4
344
222
343
222
【输出样例】
1131 282.75000
n=int(input())
sun=0
for i in range(n):
a=int(input())
sun+=a
print(sun,end=' ')
print("%.5f"%(sun/n))
8.1062:最高的分数
1062:最高的分数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 105881 通过数: 77497
【题目描述】
孙老师讲授的《计算概论》这门课期中考试刚刚结束,他想知道考试中取得的最高分数。因为人数比较多,他觉得这件事情交给计算机来做比较方便。你能帮孙老师解决这个问题吗?
【输入】
输入两行,第一行为整数n(1 <= n < 100),表示参加这次考试的人数.第二行是这n个学生的成绩,相邻两个数之间用单个空格隔开。所有成绩均为0到100之间的整数。
【输出】
输出一个整数,即最高的成绩。
【输入样例】
5
85 78 90 99 60
【输出样例】
99
n=int(input())
a=list(map(int,input().split(' ')))
sun=0
for i in a:
if i>sun:
sun=i
print(sun)
n=int(input())
a=list(map(int,input().split(' ')))
sun=0
sui=1000
for i in a:
if i>sun:
sun=i
if i<sui:
sui=i
print(sun-sui)
9.1064:奥运奖牌计数
1064:奥运奖牌计数\
【题目描述】
2008年北京奥运会,A国的运动员参与了n天的决赛项目(1≤n≤17)。现在要统计一下A国所获得的金、银、铜牌数目及总奖牌数。输入第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目。输出4个整数,为A国所获得的金、银、铜牌总数及总奖牌数。
【输入】
输入n+1行,第1行是A国参与决赛项目的天数n,其后n行,每一行是该国某一天获得的金、银、铜牌数目,以一个空格分开。
【输出】
输出1行,包括4个整数,为A国所获得的金、银、铜牌总数及总奖牌数,以一个空格分开。
【输入样例】
3
1 0 3
3 1 0
0 3 0
【输出样例】
4 4 3 11
n=int(input())
sub=0
sua=0
suc=0
for i in range(n):
a,b,c=list(map(int,input().split()))
sua=sua+a
sub+=b
suc+=c
print(sua,sub,suc,sua+sub+suc)
10.1065:奇数求和
1065:奇数求和
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 110580 通过数: 71204
【题目描述】
计算非负整数m
到n
(包括m
和n
)之间的所有奇数的和,其中,m
不大于 n
,且n
不大于300
。例如 m=3,n=12
, 其和则为:3+5+7+9+11=35
。
【输入】
两个数 m
和 n
,两个数以一个空格分开,其中 0≤m≤n≤300
。
【输出】
输出一行,包含一个整数,表示m
到 n
(包括m
和 n
)之间的所有奇数的和
【输入样例】
7 15
【输出样例】
55
m,n=list(map(int,input().split()))
sun=0
for i in range(m,n+1):
if i%2!=0 :
sun+=i
print(sun)
11.1066:满足条件的数累加
1066:满足条件的数累加
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 82557 通过数: 66141
【题目描述】
将正整数m
和n
之间(包括m
和n
)能被17
整除的数累加,其中,0<m<n<1000
。
【输入】
一行,包含两个整数m
和n
,其间,以一个空格间隔。
【输出】
输出一行,包行一个整数,表示累加的结果。
【输入样例】
50 85
【输出样例】
204
提交 统计信息 提交记录
m,n=list(map(int,input().split()))
sun=0
for i in range(m,n+1):
if i%17==0:
sun+=i
print(sun)
12.1067:整数的个数
1067:整数的个数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 89743 通过数: 62782
【题目描述】
给定k(1<k<100)个正整数,其中每个数都是大于等于1,小于等于10的数。写程序计算给定的k个正整数中,1,5和10出现的次数。
【输入】
输入有两行:第一行包含一个正整数k,第二行包含k个正整数,每两个正整数用一个空格分开。
【输出】
输出有三行,第一行为1出现的次数,第二行为5出现的次数,第三行为10出现的次数。
【输入样例】
5
1 5 8 10 5
【输出样例】
1
2
1
k=int(input())
a=list(map(int,input().split()))
su1=0
su5=0
su10=0
for i in range(k):
if a[i]==1:
su1=su1+1
elif a[i]==5:
su5=su5+1
elif a[i]==10 :
su10=su10+1
print(su1)
print(su5)
print(su10)
13.1068:与指定数字相同的数的个数
【题目描述】
输出一个整数序列中与指定数字相同的数的个数。输入包含2行:第1行为N和m,表示整数序列的长度(N<=100)和指定的数字;第2行为N个整数,整数之间以一个空格分开。输出为N个数中与m相同的数的个数。
【输入】
第1行为N和m,表示整数序列的长度(N<=100)和指定的数字, 中间用一个空格分开;
第2行为N个整数,整数之间以一个空格分开。
【输出】
输出为N个数中与m相同的数的个数。
【输入样例】
3 2
2 3 2
【输出样例】
2
n,m=list(map(int,input().split()))
sun=0
a=list(map(int,input().split()))
for i in range(n):
if a[i]==m:
sun+=1
print(sun)
14.1069:乘方计算
【题目描述】
给出一个整数a
和一个正整数n(−1000000≤a≤1000000,1≤n≤10000)
,求乘方an
,即乘方结果。最终结果的绝对值不超过1000000
。
【输入】
一行,包含两个整数a
和n
。−1000000≤a≤1000000,1≤n≤10000
。
【输出】
一个整数,即乘方结果。题目保证最终结果的绝对值不超过1000000
。
【输入样例】
2 3
【输出样例】
8
a,n=list(map(int,input().split()))
sun=1
for i in range(n):
sun=sun*a
print(sun)
15.
1070:人口增长
1070:人口增长
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 81667 通过数: 56591
【题目描述】
我国现有x亿人口,按照每年0.1%的增长速度,n年后将有多少人?保留小数点后四位。
【输入】
一行,包含两个整数x和n,分别是人口基数和年数,以单个空格分隔。
【输出】
输出最后的人口数,以亿为单位,保留到小数点后四位。1<=x<=100,1<=n<=100。
【输入样例】
13 10
【输出样例】
13.1306
x,n=list(map(int,input().split()))
sun=1
for i in range(n):
x=x+(x*0.001)
print("%.4f"%x)
201077:统计满足条件的4位数
1077:统计满足条件的4位数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 71669 通过数: 49240
【题目描述】
给定若干个四位数,求出其中满足以下条件的数的个数:个位数上的数字减去千位数上的数字,再减去百位数上的数字,再减去十位数上的数字的结果大于零。
【输入】
输入为两行,第一行为四位数的个数n,第二行为n个的四位数。(n<=100)
【输出】
输出为一行,包含一个整数,表示满足条件的四位数的个数。
【输入样例】
5
1234 1349 6119 2123 5017
【输出样例】
3
n=int(input())
sun1=0
a=list(map(int,input().split()))
for i in range(n):
g=a[i]%10
s=a[i]//10%10
b=a[i]//10//10%10
q=a[i]//10//10//10%10
if g-q-b-s>0 :
sun1+=1
print(sun1)
211080:余数相同问题
【题目描述】
已知三个正整数a,b,c。现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的余数相同。
请问满足上述条件的x的最小值是多少?数据保证x有解。
【输入】
一行,三个不大于1000000的正整数a,b,c,两个整数之间用一个空格隔开。
【输出】
一个整数,即满足条件的x的最小值。
【输入样例】
300 262 205
【输出样例】
19
a,b,c=list(map(int,input().split()))
ma=max(a,b,c)
for x in range(2,ma):
if (a%x)==(b%x) and (b%x)==(c%x):
print(x)
break
221081:分苹果
1081:分苹果
【题目描述】
把一堆苹果分给n个小朋友,要使每个人都能拿到苹果,而且每个人拿到的苹果数都不同的话,这堆苹果至少应该有多少个?
【输入】
一个不大于1000的正整数n,代表小朋友人数。
【输出】
一个整数,表示满足条件的最少苹果个数。
【输入样例】
8
【输出样例】
36
n=int(input())
sun=0
for i in range(1,n+1):
sun+=i
print(sun)
2020:【例4.5】第几项
2020:【例4.5】第几项
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 51693 通过数: 35799
【题目描述】
对于正整数n,m
,求s=1+2+3……+n
,当加到第几项时,s
的值会超过m
?
【输入】
输入m
。
【输出】
输出n
。
【输入样例】
1000
【输出样例】
45
【提示】
【数据范围】
对于全部数据:1≤m≤40000
m=int(input())
s,i=0,0
while s<m:
i+=1
s+=i
print(i)
232021:【例4.6】最大公约数
【题目描述】
求两个正整数m
,n
的最大公约数。
【输入】
输入m
,n
。
【输出】
m
,n
的最大公约数。
【输入样例】
4 6
【输出样例】
2
【提示】
【数据范围】
对于全部数据:m,n<4000000
。
n,m=list(map(int,input().split()))
c=min(n,m)
i=c
while i>=1:
if m%i==0 and n%i==0:
print(i)
break
i-=1
2022:【例4.7】最小n值
【题目描述】
编一程序求满足不等式1+12+13…+1n≥m
的最小n
值。
其中,n,m
为正整数。
【输入】
输入m
。
【输出】
输出n
。
【输入样例】
3
【输出样例】
11
【提示】
【数据范围】
对于所有数据:m≤11
m=int(input())
n=0
sun=0
while sun<m:
n+=1
sun+=(1/n)
print(n)
25 2023:【例4.8】数据统计
【题目描述】
输入一些整数,求出它们的最小值、最大值和平均值(保留3位小数)。输入保证这些数都是不超过1000的整数。
【输入】
一行,若干个整数。
【输出】
一行,即,最小值、最大值和平均值(保留3位小数)。
【输入样例】
1 2 3
【输出样例】
1 3 2.000
【提示】
【数据范围】
数据个数不超过100
。
a=list(map(int,input().split()))
i,sun,m1,m2,p=0,0,1000,0,0
while i<len(a):
if a[i]>m2 :
m2=a[i]
if a[i]<m1:
m1=a[i]
sun+=a[i]
i+=1
sun=(sun/len(a))
print(m1,m2,end=' ')
print("%.3f"%sun)
-------------
n=list(map(int,input().split()))
mi=min(n)
ma=max(n)
p=0
i=0
sun=0
while i<len(n):
sun+=n[i]
i+=1
p=sun/len(n)
print(mi,end=" ")
print(ma,end=" ")
print("%.3f"%p)
26 1085:球弹跳高度的计算
h=int(input())#初始高度
sum1=0 #总下落高度
w=h #保留初始高度
i=1
while i<=10:
sum1+=h
h=h/2
i+=1
print(sum1*2-w)
print(h)
27 1086:角谷猜想
1086:角谷猜想
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 103496 通过数: 62434
【题目描述】
谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。程序要求输入一个整数,将经过处理得到1的过程输出来。
【输入】
一个正整数n(n≤2,000,000)。
【输出】
从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"End"。如果输入为1,直接输出"End"。
【输入样例】
5
【输出样例】
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
End
【提示】
no
n=int(input())
w=n
while n!=1:
if n%2!=0:
n=n*3+1
print("%d*3+1="%w,end='')
print(n)
w=n
elif n%2==0:
n=n//2
print("%d/2="%w,end='')
print(n)
w=n
print("End")
1087:级数求和
1087:级数求和
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 106283 通过数: 48360
【题目描述】
已知:Sn=1+12+13+…+1n。显然对于任意一个整数k,当n足够大的时候,Sn大于k。现给出一个整数k(1<=k<=15),要求计算出一个最小的n,使得Sn>k。
【输入】
一个整数k。
【输出】
一个整数n。
【输入样例】
1
【输出样例】
2
k=int(input())
n=0
sun=0
while sun<=k:
n+=1
sun+=1/n
print(n)
1088:分离整数的各个数
1088:分离整数的各个数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 78166 通过数: 56888
【题目描述】
给定一个整数n(1≤n≤100000000),要求从个位开始分离出它的每一位数字。从个位开始按照从低位到高位的顺序依次输出每一位数字。
【输入】
输入一个整数,整数在1到100000000之间。
【输出】
从个位开始按照从低位到高位的顺序依次输出每一位数字。数字之间以一个空格分开。
【输入样例】
123
【输出样例】
3 2 1
n=int(input())
while n!=0:
print(n%10,end=" ")
n=n//10
n=int(input()) #120
sum1=0
a=1
if n<0:
n = -n
a=0
while n!=0:
sum1=sum1*10+(n%10)
n = n//10
if a:
print(sum1)
else:
print(-sum1)
1090:含k个3的数
1090:含k个3的数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 102568 通过数: 52992
【题目描述】
输入两个正整数m和k,其中1<m<100000,1<k<5 ,判断m 能否被19整除,且恰好含有k个3,如果满足条件,则输出YES,否则,输出NO。 例如,输入:43833 3,满足条件,输出YES。如果输入:39331 3,尽管有3个3,但不能被19整除,也不满足条件,应输出NO。
【输入】
m 和 k 的值,中间用单个空格间隔。
【输出】
满足条件时输出 YES,不满足时输出 NO。
【输入样例】
43833 3
【输出样例】
YES
m,k=list(map(int,input().split()))
sun=0
sui=0
if m%19==0 :
while m>0:
sun=m%10
if sun==3:
sui+=1
m=m//10
if sui==k:
print("YES")
else:
print("NO")
else:
print("NO")
2026:【例4.12】阶乘和
2026:【例4.12】阶乘和
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 52228 通过数: 34856
【题目描述】
求 S=1!+2!+3!+....+n!
【输入】
输入正整数n
。
【输出】
输出s
。
【输入样例】
3
【输出样例】
9
【提示】
【数据范围】
对于所有数据:1≤n≤10
。
n=int(input())
sun=0
for i in range(1,n+1): #获得数字
s=1
for j in range(1,i+1): #求i的阶乘
s*=j
sun+=s
print(sun)
2027:【例4.13】三角形
2027:【例4.13】三角形
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 41460 通过数: 32518
【题目描述】
对于给定的自然数n(n<20)
,在屏幕上输出仅由“*”构成的n
行的直角三角形。
【输入】
输入n
。
【输出】
题述三角形。
【输入样例】
5
【输出样例】
*
**
***
****
*****
n=int(input())
for i in range(1,n+1):
j=1
for j in range(1,i+1):
print("*",end="")
i+=1
print("")
2029:【例4.15】水仙花数
2029:【例4.15】水仙花数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 56449 通过数: 33559
【题目描述】
求100∼999
中的水仙花数。若三位数ABC
,ABC=A3+B3+C3
,则称ABC
为水仙花数。
例如153
,13+53+33=1+125+27=153
,则153
是水仙花数。
【输入】
无
【输出】
由小到大输出满足条件的数,每个数占一行。
假设需要输出两个数:119,100。需要输出以下形式:
100
119
【输入样例】
无
【输出样例】
无
for i in range(100,1000):
a=i%10 #个位数
b=i//10%10 #十位数
c=i//10//10%10#百位数
if (a**3+b**3+c**3)==i:
print(i)
2030:【例4.16】找素数
2030:【例4.16】找素数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 44925 通过数: 28505
【题目描述】
输出正整数a
到b
之间的所有素数。
【输入】
输入a,b
。
【输出】
由小到大,输出a
到b
之间的所有素数。每个数占一行。
【输入样例】
5 10
【输出样例】
5
7
【提示】
【数据范围】
对于所有数据,1≤a≤b≤20000
。
a,b=list(map(int,input().split()))
for i in range(a,b+1):
w=True
for j in range(2,i):
if i%j==0:
w=False
break
if w:
print(i)
2031:【例4.17】四位完全平方数
2031:【例4.17】四位完全平方数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 46716 通过数: 25479
【题目描述】
输出所有形如aabb的四位完全平方数(即前两位数字相等,后两位数字也相等)。
【输入】
无
【输出】
由小到大输出,每个数占一行。
【输入样例】
无
【输出样例】
无
import math as m
for i in range(1000,10000):
if int(m.sqrt(i))==m.sqrt(i):
gw=i%10
sw=i//10%10
bw=i//10//10%10
qw=i//10//10//10%10
if gw==sw and bw==qw:
print(i)
2032:【例4.18】分解质因数
2032:【例4.18】分解质因数
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 34936 通过数: 22300
【题目描述】
把一个合数分解成若干个质因数乘积的形式(即求质因数的过程)叫做分解质因数。分解质因数(也称分解素因数)只针对合数。
输入一个正整数n
,将n
分解成质因数乘积的形式。
【输入】
一个正整数n
。
【输出】
分解成质因数乘积的形式。质因数必须由小到大,见样例。
【输入样例】
36
【输出样例】
36=2*2*3*3
【提示】
【数据范围】
对于所有数据,2≤n≤20000
。
n=int(input())
print("%d="%n,end='')
for i in range(2,n+1):
while n%i==0:
print(i,end='')
n/=i
if n!=1:
print("*",end='')
2033:【例4.19】阶乘之和
2033:【例4.19】阶乘之和
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 75488 通过数: 19058
【题目描述】
输入n
,计算S=1!+2!+3!+…+n!
的末6
位(不含前导0)。n≤106
, n!
表示前n
个正整数之积。
【输入】
输入n
。
【输出】
如题述,之和。
【输入样例】
10
【输出样例】
37913
【提示】
【数据范围】
对于所有数据,1≤n≤999999
。
n=int(input())
sui=0
suu=0
for i in range(1,n+1):
sun=1
for j in range(1,i+1):
sun*=j
sui+=sun
d=100000
i=1
b=False
while i<=6:
if (sui//d%10)!=0 or b:
print(sui//d%10,end='')
b=True
d=d//10
i+=1
#哇 这提代码好长
1097:画矩形
1097:画矩形
时间限制: 1000 ms 内存限制: 65536 KB
提交数: 70181 通过数: 41952
【题目描述】
根据参数,画出矩形。输入四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少于5列不多于10列);第三个参数是一个字符,表示用来画图的矩形符号;第四个参数为1或0,0代表空心,1代表实心。
【输入】
输入一行,包括四个参数:前两个参数为整数,依次代表矩形的高和宽(高不少于3行不多于10行,宽不少于5列不多于10列);第三个参数是一个字符,表示用来画图的矩形符号;第四个参数为1或0,0代表空心,1代表实心。
【输出】
输出画出的图形。
【输入样例】
7 7 @ 0
【输出样例】
@@@@@@@
@ @
@ @
@ @
@ @
@ @
@@@@@@@
a1,a2,a3,a4=input().split()
a1=int(a1)
a2=int(a2)
a4=int(a4)
for i in range(0,a1):
for j in range(0,a2):
if a4==0:
if i==0 or i==a1-1:
print(a3,end="")
else:
if j==0 or j==a2-1:
print(a3,end="")
else:
print(" ",end="")
else:
print(a3,end="")
print()
n=int(input())
sun1=0
for i in range(0,n+1):
if i%7!=0:
s=i
c=0 #默认不包含7
while s!=0:
b=s%10
if b==7:
c=7
break
s=s//10
if c!=7:
sun1+=i**2
print(sun1)