sdut-python-实验二-程序流程控制(11-20)
7-11 sdut-入门-4 A+B for Input-Output Practice (IV)
分数 10
作者 周雪芹
单位 山东理工大学
你的任务是计算一些整数的和。
输入格式:
输入包含多个测试用例。
每个测试用例包含一个整数N,然后在同一行中跟随N个整数。以0开始的测试用例终止输入,并且这个测试用例不被处理。
输出格式:
对于每一组输入整数,您应该在一行中输出它们的和,输入的每一行都有一行输出。
输入样例:
在这里给出一组输入。例如:
4 1 2 3 4
5 1 2 3 4 5
0
输出样例:
在这里给出相应的输出。例如:
10
15
代码长度限制
实现代码:
while True:
s=0
n=[int(num) for num in input().split()]
if n[0]==0:
break
del n[0]
print(sum(n))
7-12 sdut-入门-5 A+B for Input-Output Practice (V)
分数 10
作者 周雪芹
单位 山东理工大学
你的任务是计算一些整数的和。
输入格式:
输入包含一个整数N在第一行,然后N行。
每一行以一个整数M开始,然后在同一行中跟随M个整数。
输出格式:
对于每一组输入整数,您应该在一行中输出它们的和,输入的每一行都有一行输出。
输入样例:
在这里给出一组输入。例如:
2
4 1 2 3 4
5 1 2 3 4 5
输出样例:
在这里给出相应的输出。例如:
10
15
实现代码:
n=int(input())
while n:
n-=1
numbers=[int(num) for num in input().split()]
del numbers[0]
print(sum(numbers))
7-13 sdut-九九乘法表
分数 10
作者 周雪芹
单位 山东理工大学
《九九乘法歌诀》,又常称为“小九九”,如下图所示。你的任务是写一个程序,对于给定的一个正整数 n ,输出“九九乘法表”的前 n 行。例如,输入 n 为 9,你的程序的输出将为下图:

输入格式:
输入包含多组测试数据,每组测试数据只包含一个正整数 n (0 < n < 10)。
输出格式:
对于每组测试数据,输出上图所示“九九乘法表”的前 n 行。
每个等式中,乘法计算的结果(即等号后面的整数)占2位数的位置,左对齐。一行内每个等式之间有一个空格,行后没有空格。
每组测试数据之后加1个空行。
输入样例:
2
3
6
输出样例:
在这里给出相应的输出。例如:
1*1=1
1*2=2 2*2=4
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
代码长度限
实现代码:
while True:
try:
n=int(input())
for i in range(1,n+1):
for j in range(1,i+1):
if i!=j:
print(f"{j}*{i}={j*i}",end=" ")
else:
print(f"{j}*{i}={j*i}",end="\n")
except:
break
7-14 sdut-平方数(I)
分数 10
作者 周雪芹
单位 山东理工大学
飞飞特别喜欢平方数,可是他数学并不好,你能帮他计算n与m之间所有平方数之和吗?
提示:若一个整数的开方还是整数,它就是平方数。例如:4、9、16、25是平方数。
输入格式:
第一行 T 代表数据的组数。
接下来有 T 行,每行两个整数n,m (0 <= n, m <= 100000000), n、m数值大小不确定。
输出格式:
对于每行输入,输出一个整数,代表所求区间内平方数之和。
输入样例:
3
1 4
3 10
17 20
输出样例:
在这里给出相应的输出。例如:
5
13
0
实现代码:
n=int(input())
while n:
n-=1
x,y=map(int,input().split())
x,y=min(x,y),max(x,y)
sum=0
for i in range(x,y+1):
if i==int(i**0.5)**2:
sum+=i
print(sum)
7-15 sdut-求交错序列前N项和
分数 10
作者 周雪芹
单位 山东理工大学
编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。
输入格式:
在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值,结果保留三位小数。
提示:在Python中输出数值格式化的方式可以有多种,如:
print("{:.3f}".format(sum)) #方式1,其中:sum为变量
print("%.3f" %(sum) ) #方式2,其中:sum为变量
输入样例:
5
输出样例:
0.917
实现代码:
n=int(input())
sum=0
for i in range(1,n+1):
if i%2==0:
sum-=i/(2*i-1)
else:
sum+=i/(2*i-1)
print("%.3f"%sum)
7-16 sdut-生成输入数的乘方表
分数 10
作者 周雪芹
单位 山东理工大学
输入一个非负数和正整数n,3<=n<=10,生成一张输入数的乘方表,并输出。
输入格式:
在一行输入一个非负数和正整数n,中间有一个空格。
输出格式:
按照幂的递增顺序输出n+1行,计算结果保留2位小数。
输入样例1:
2.5 3
输出样例1:
2.5**0=1.00
2.5**1=2.50
2.5**2=6.25
2.5**3=15.62
输入样例2:
1 5
输出样例2:
1.0**0=1.00
1.0**1=1.00
1.0**2=1.00
1.0**3=1.00
1.0**4=1.00
1.0**5=1.00
实现代码:
x,y=map(float,input().split())
y=int(y)
for i in range(0,y+1):
print(f"{x}**{i}={x**i:.2f}")
7-17 sdut-水仙花数
分数 10
作者 周雪芹
单位 山东理工大学
水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。 例如:153=1×1×1+5×5×5+3×3×3。
请计算所有N位水仙花数。
输入格式:
在一行内,给出一个正整数N(3≤N≤5)。
输出格式:
按递增顺序输出所有N位水仙花数,每个数字占一行。
输入样例:
在这里给出一组输入。例如:
3
输出样例:
在这里给出相应的输出。例如:
153
370
371
407
实现代码:
def fun(x):
sum=0
t=x
while x:
y=x%10
x//=10
sum+=y**n
return sum==t
n=int(input())
for i in range(10**n//10,10**n):
if fun(i):
print(i)
7-18 sdut-最大公约数和最小公倍数
分数 10
作者 周雪芹
单位 山东理工大学
给定2个正整数,求它们的最大公约数和最小公倍数,并输出。
输入格式:
输入有若干组。
每组数据,在一行中给出两个正整数M和N,中间有1个空格。
输出格式:
对于每组输入,在一行中顺序输出M和N的最大公约数和最小公倍数,两数字间以1个空格分隔。
输入样例:
18 12
20 15
39 26
5 76
45 25
1993 343
输出样例:
在这里给出相应的输出。例如:
6 36
5 60
13 78
1 380
5 225
1 683599
实现代码:
while True:
try:
x,y=map(int,input().split())
z=x*y
while y:
t=y
y=x%y
x=t
print(x,z//x)
except:
break
7-19 sdut-求满足条件的斐波那契数
分数 10
作者 周雪芹
单位 山东理工大学
斐波那契数,亦称之为斐波那契数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……,这个数列从第3项开始,每一项都等于前两项之和。求大于输入数的最小斐波那契数。
输入格式:
在一行输人一个正整数n(n>=10)。
输出格式:
在一行输出大于n的最小斐波那契数。
输入样例:
10
输出样例:
13
实现代码:
n=int(input())
a=1
b=1
while b<=n:
t=a
a=b
b+=t
print(b)
7-20 sdut-冒泡排序中数据交换的次数
分数 10
作者 周雪芹
单位 山东理工大学
听说过冒泡排序么?一种很暴力的排序方法。今天我们不希望你用它来排序,而是希望你能算出从小到大冒泡排序的过程中一共进行了多少次数据交换。
输入格式:
第一行为一个正整数 T ,表示有 T 组测试数据。
接下来T行,每行第一个整数N, 然后有N个整数,无序。0<N <= 100。
输出格式:
输出共 T 行。
每行一个整数,代表本行数据从小到大冒泡排序所进行的交换次数。
输入样例:
3
5 1 2 3 4 5
4 5 3 7 1
2 2 1
输出样例:
0
4
1
实现代码:
def fun(arr):
sum=0
x=len(arr)
for i in range(x):
for j in range(x-i-1):
if arr[j]>arr[j+1]:
arr[j],arr[j+1]=arr[j+1],arr[j]
sum+=1
return sum
n=int(input())
while n:
n-=1
nums=[int(num) for num in input().split()]
del nums[0]
print(fun(nums))更多推荐


所有评论(0)