Python基础练习题--第四章 循环结构

目录

1036:【例4.1】输出连续10个数(浙版)

1037:【例4.2】网购笔记本(粤教)

1038:【例4.3】温度对应表1(沪版)

1039:【例4.4】温度对应表2(沪版)

1040:【例4.5】沃利斯公式(沪版)

1041:练4.1  for循环求和

1042:练4.2  输出偶数

1043:练4.3  输出奇偶数之和

1044:练4.4  求阶乘n!的值

1045:练4.5  数据统计

1046:练4.6  三角形

1047:【例4.6】募集捐款(粤教)

1048:【例4.7】数字反转(沪版)

1049:【例4.8】理财产品收益(科教)

1050:【例4.9】求所有因子(浙版)

1051:【例4.10】猜数游戏(浙版)

1052:【例4.11】计算圆周率(沪版)

1053:练4.7  求第几项

1054:练4.8  求最大公约数

1055:练4.9  求最小n值

1056:练4.10  求末两位数

1057:练4.11  体操队

1058:【例4.12】求阶乘和

1059:【例4.13】九九乘法表(人教)

1060:【例4.14】四位完全平方数

1061:练4.12  百钱买百鸡

1062:练4.13  水仙花数

1063:练4.14  找素数

1064:练4.15  阶乘之和

1065:练4.16 分解质因数

1036:【例4.1】输出连续10个数(浙版)

【题目描述】
从0开始输出,连续输出10个数。

【输入】
(无)

【输出】
输出10个数,每个数中间有1个空格。

【输入样例】
(无)
【输出样例】
0 1 2 3 4 5 6 7 8 9

for i in range(0,10):
    print(i,end=" ")

1037:【例4.2】网购笔记本(粤教)

【题目描述】
某小组决定网购单价为1元至10元的十种笔记本各一本,求一共要花多少钱?

【输入】
(无)

【输出】
一行一个整数,表示答案。

【输入样例】
(无)
【输出样例】
(无)

j=0
for i in range(1,11):
    j=i+j
print(j)

1038:【例4.3】温度对应表1(沪版)

【题目描述】
计算华氏100度到105度所对应的摄氏温度。精确到小数点后2位。

换算公式 C=5×(F−32)÷9(其中C表示摄氏温度,F表示华氏温度)。

【输入】
(无)

【输出】
若干行每行两个数,表示华氏温度(整数,占8个字符宽度)与摄氏温度(占10个字符宽度,保留两位小数)。

【输入样例】
(无)
【输出样例】
     100     37.78
     101     38.33
     102     38.89
     103     39.44
     104     40.00
     105     40.56

for f in range(100,106):
    c=5*(f-32)/9
    print("%8.0f%10.2F"%(f,c))

1039:【例4.4】温度对应表2(沪版)

【题目描述】
人体温度计的合理范围是华氏90度到110度。给定华氏温度的下限 l,上限 h,输出此范围的华氏摄氏温度对应表。

【输入】
第一行为整数 l;

第二行为整数 h。

【输出】
若干行每行两个数,表示华氏温度(整数,占8个字符宽度)与摄氏温度(占10个字符宽度,保留两位小数)。

如果下限 l 大于等于上限 h,输出“输入的下限应该小于上限”。

【输入样例】
93
105
【输出样例】
      93     33.89
      94     34.44
      95     35.00
      96     35.56
      97     36.11
      98     36.67
      99     37.22
     100     37.78
     101     38.33
     102     38.89
     103     39.44
     104     40.00

l=int(input())
h=int(input())
if l>h:
    print("输入的下限应该小于上限")
else:
    for f in range(l, h):
        c=5*(f-32)/9
        print("%8.0f%10.2f"%(f,c))

1040:【例4.5】沃利斯公式(沪版)

【题目描述】
使用沃利斯公式求圆周率 π。

沃利斯公式:


 

【输入】
(无)

 【输出】
一行一个浮点数,表示圆周率 π。精确到小数点后4位。

【输入样例】
(无)
【输出样例】
3.1415

s=1
for i in range(2,20000,2):
    j=i/(i-1)*i/(i+1)
    s=s*j
pi=2*s
print("%.4f"%(pi))

1041:练4.1  for循环求和

【题目描述】
利用for循环。计算输出1+2+3+...+n的和。

【输入】
输入n。

【输出】
如题述,之和。

【输入样例】
10
【输出样例】
55

n=int(input())
j=0
for i in range(1,n+1):
    j=j+i
print(j)

1042:练4.2  输出偶数

【题目描述】
按照由小到大的顺序,输出1∼n之间的所有偶数。

【输入】
输入n。

【输出】
输出为一行,各个偶数之间用一个空格隔开。

【输入样例】
10
【输出样例】
2 4 6 8 10

n=int(input())
for i in range(1,n+1):
    if i%2==0:
        print(i,end=" ")

1043:练4.3  输出奇偶数之和

【题目描述】
利用for循环,分别输出1∼n之间的所有奇数的和、偶数的和。

【输入】
输入n。

【输出】
输出为一行,两个数(用一个空格隔开),偶数之和与奇数之和。

【输入样例】
10
【输出样例】
30 25

n=int(input())
sum1=0
sum2=0
for i in range(1,n+1):
    if i%2==0:
        sum1+=i #偶数之和
    else:
        sum2 += i  # 奇数之和
print(sum1, sum2, end=" ")

1044:练4.4  求阶乘n!的值

【题目描述】
利用for循环求n!的值。

提示,n!=1×2×...×n。

【输入】
输入一个正整数n。

【输出】
输出n!的值。

【输入样例】
4
【输出样例】
24

n=int(input())
j=1
for i in range(1,n+1):
    j*=i
print(j)

1045:练4.5  数据统计

【题目描述】
输入一些整数,求出它们的最小值、最大值和平均值(保留3位小数)。输入保证这些数都是不超过1000的整数。

【输入】
一行,若干个整数。

【输出】
一行,即,最小值、最大值和平均值(保留3位小数)。

【输入样例】
1 2 3
【输出样例】
1 3 2.000

a=input().split()
min=10000000
max=0
n=0
s=0
for i in a:
    i=int(i)
    s+=i
    if imax:
        max=i
    n+=1
print(min,max,'%.3f'%(s/n))

1046:练4.6  三角形

【题目描述】
对于给定的自然数n(n<20),在屏幕上输出仅由“*”构成的n行的直角三角形。

例如:当n=5时,输出:

*
**
***
****
*****
【输入】
输入n。

【输出】
题述三角形。

【输入样例】
5
【输出样例】
*
**
***
****
*****

n=int(input())
for i in range(1,n+1):
    print(i*"*")

1047:【例4.6】募集捐款(粤教)

【题目描述】
某场募捐活动上,第一个人募捐20元,第二个人募捐25元……后一个人比前一个人均多募捐5元,求第几个人募捐后,总金额累计大等于500元。

【输入】
(无)

【输出】
一行一个整数,表示答案。

【输入样例】
(无)
【输出样例】
(无)

money=20
num=1
sum=0
while sum<500:
    num+=1
    money+=5
    sum+=money
print(num)
j=0
s=0
for i in range(20,501,5):
    j += 1
    s += i
    if s>500:
        break
print(j)

1048:【例4.7】数字反转(沪版)

【题目描述】
给定一个正整数,请将该数各位上数字反转得到一个新数。得到的新数的最高位数字不应为零,例如输入380,反转后得到的新数为83。

【输入】
一行一个正整数。

【输出】
一行一个正整数,表示反转后的新数。

【输入样例】
726
【输出样例】
627

num=int(input())
reversenum=0
while num>0:
    reversenum=reversenum*10+num%10
    num=num//10
print(reversenum)

1049:【例4.8】理财产品收益(科教)

【题目描述】
小明是一位精明的投资者。他购买了10万元一年期收益率3.7% 的银行保证收益型理财产品。每年理财赎回后,他会提取2万元用作生活所需,余下的自己仍购买此种理财,在收益率不变的情况下,多少年后被自己全部取出?

【输入】
(无)

【输出】
一行一个整数

【输入样例】
(无)
【输出样例】
(无)

num=100000
j=0
while num>=0:
    j+=1
    num=num*0.037+num-20000
print(j)

1050:【例4.9】求所有因子(浙版)

【题目描述】
输入一个正整数 x ,输出所有不包括本身的所有因子。

【输入】
输入一行一个整数 x 。

【输出】
输出若干行,一行一个整数,表示正整数x的不包括本身的所有因子。

【输入样例】
243
【输出样例】
1
3
9
27
81

x=int(input())
i=1
while i

1051:【例4.10】猜数游戏(浙版)

【题目描述】
请设计一个猜数游戏平台,有两个玩家Alice和Bob。Alice给定一个数,请Bob猜这个数是多少。猜数方法是交互的:Bob输入猜测的数字,平台给出相应的提示:“偏大”“偏小”或“正确”。若所猜数字正确,则游戏结束;否则继续猜数。

请你实现这个猜数游戏平台。

【输入】
第一行输入一个数,表示Alice给定的数。

接着输入若干行,表示Bob的猜数过程。每行一个整数,表示Bob猜测的数字。

【输出】
对于每一行输入,输出一行。输出偏大”“偏小”或“正确”。

【输入样例】
23
300
20
100
25
23
【输出样例】
偏大
偏小
偏大
偏大
正确

Alice=int(input())
i=1
while i:
    Bob = int(input())
    if Bob > Alice:
        print('偏大')
    if Bob < Alice:
        print('偏小')
    if Bob==Alice:
        print('正确')
        i=0

1052:【例4.11】计算圆周率(沪版)

【题目描述】
使用如下公式求圆周率 \pi

公式:\frac{\pi^{2}}{6}=1+\frac{1}{2^{2}}+\frac{1}{3^{2}}+\frac{1}{4^{2}}+\cdots
【输入】
(无)

【输出】
一行一个浮点数,表示圆周率 π。精确到小数点后4位。

【输入样例】
(无)
【输出样例】
3.1415
 

from math import sqrt   #调用库
i=1
s=0
j=1
while j>0.00000001:
    s+=j
    i+=1
    j=1/(i**2)
pi=sqrt(6*s)  #返回平方根
print("%.4f"%(pi))

i=1
s=0
j=1
while j>0.00000001:
    s+=j
    i+=1
    j=1/(i**2)
pi=(6*s)**0.5
print("%.4f"%(pi))

1053:练4.7  求第几项

【题目描述】
对于正整数n,m,求s=1+2+3……+n,当加到第几项时,s的值会超过m?

【输入】
输入m。

【输出】
输出n。

【输入样例】
1000
【输出样例】
45

m=int(input())
n=0
s=0
while s<=m:
    n+=1
    s += n
print(n)
m=int(input())
i=1
n=1
s=0
while i:
    s+=n
    if s>m:
        print(n)
        i=0
    n+=1

1054:练4.8  求最大公约数

【题目描述】
求两个正整数m,n的最大公约数。

【输入】
输入m,n。

【输出】
m,n的最大公约数。

【输入样例】
4 6
【输出样例】
2

m,n=map(int,input().split())
if m>n:
    min=n
else:
    min=m
while min>1 and (m%min!=0 or n%min!=0):
    min-=1
print(min)

1055:练4.9  求最小n值

【题目描述】
编一程序求满足不等式1+\frac{1}{2}+\frac{1}{3}\cdots +\frac{1}{n}\geq m的最小n值。

其中,n,m为正整数。

【输入】
输入m。

【输出】
输出n。

【输入样例】
3
【输出样例】
11

m=int(input())
s=1
n=1
while s

1056:练4.10  求末两位数

【题目描述】
求n个1992的乘积的末两位数是多少?

【输入】
输入n。

【输出】
如题述的末两位数。

【输入样例】
3
【输出样例】
88

n=int(input())
s=1
while n>0:
    s*=1992
    n-=1
s=s%100
print(s)

1057:练4.11  体操队

【题目描述】
校体操队到操场集合,排成每行2人,最后多出1人;排成每行3人,也多出1人;分别按每行排4,5,6人,都多出1人;当排成每行7人时,正好不多。求校体操队至少多少人?

【输入】
如题述,无。

【输出】
校体操队人数。

【输入样例】
(无)
【输出样例】
(无)
【提示】
例如:人数为15,直接输出“15”就可以啦。

x=0
i=0
while i==0:
    i=1
    x+=7
    if x%2!=1:
        i=0
    if x % 3 != 1:
        i = 0
    if x % 4 != 1:
        i = 0
    if x % 5 != 1:
        i = 0
    if x % 6 != 1:
        i = 0
print(x)

1058:【例4.12】求阶乘和

【题目描述】
求 S=1!+2!+3!+\cdots +n!

【输入】
输入正整数n。

【输出】
输出s。

【输入样例】
3
【输出样例】
9

n=int(input())
s=0
t=1
for i in range(1,n+1):
    t*=i
    s+=t
print(s)

1059:【例4.13】九九乘法表(人教)

【题目描述】
参照以下输出格式:

1 * 1 = 1  
2 * 1 = 2  2 * 2 = 4  
3 * 1 = 3  3 * 2 = 6  3 * 3 = 9  
4 * 1 = 4  4 * 2 = 8  4 * 3 = 12  4 * 4 = 16  
5 * 1 = 5  5 * 2 = 10  5 * 3 = 15  5 * 4 = 20  5 * 5 = 25  
6 * 1 = 6  6 * 2 = 12  6 * 3 = 18  6 * 4 = 24  6 * 5 = 30  6 * 6 = 36  
7 * 1 = 7  7 * 2 = 14  7 * 3 = 21  7 * 4 = 28  7 * 5 = 35  7 * 6 = 42  7 * 7 = 49  
8 * 1 = 8  8 * 2 = 16  8 * 3 = 24  8 * 4 = 32  8 * 5 = 40  8 * 6 = 48  8 * 7 = 56  8 * 8 = 64  
9 * 1 = 9  9 * 2 = 18  9 * 3 = 27  9 * 4 = 36  9 * 5 = 45  9 * 6 = 54  9 * 7 = 63  9 * 8 = 72  9 * 9 = 81
【输入】
(无)

【输出】
如题述。

【输入样例】
(无)
【输出样例】
(无)

for i in range(1,10):
    for j in range(1,i+1):
        print(i,"*",j,"=",i*j," ",end="")
    print()

1060:【例4.14】四位完全平方数

【题目描述】
输出所有形如aabb的四位完全平方数(即前两位数字相等,后两位数字也相等)。

【输入】
(无)

【输出】
由小到大输出,每个数占一行。

【输入样例】
(无)
【输出样例】
(无)

for i in range(1,10):
    for j in range(10):
        s=i*1000+i*100+j*10+j
        h=s**0.5
        t=h%int(h)
        if t==0:
            print(s)
x=1
while 1:
    n=x*x
    x=x+1
    if n<1000:
        continue
    if n>9999:
        break
    h=n//100
    l=n%100
    if h//10==h%10 and l//10==l%10:
        print(n)

1061:练4.12  百钱买百鸡

【题目描述】
百钱买百鸡问题。鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

【输入】
(无)

【输出】
输出各种鸡翁、鸡母、鸡雏的数量,依次由小到大,每种情况各占一行,每行三个数之间用一个空格隔开。

【输入样例】
(无)
【输出样例】
(无)

for x in range(100//5+1):
    for y in range(100//3+1):
        z=100-x-y
        if 5*x+3*y+z/3==100 and z%3==0:
            print(x,y,z)

1062:练4.13  水仙花数

【题目描述】
求100-999中的水仙花数。若三位数ABC,ABC=A^{3}+B^{3}+C^{3},则称ABC为水仙花数。

例如153,1^{3}+5^{3}+3^{3}=1+125+27=153,则153是水仙花数。

【输入】
(无)

【输出】
由小到大输出满足条件的数,每个数占一行。

假设需要输出两个数:119,100。需要输出以下形式:

100

119

【输入样例】
(无)
【输出样例】
(无)

for a in range(1,10):
    for b in range(10):
        for c in range(10):
            n=a*100+b*10+c
            m=a**3+b**3+c**3
            if n==m:
                print(m)

1063:练4.14  找素数

【题目描述】
输出正整数a到b之间的所有素数。

【输入】
输入a,b。

【输出】
由小到大,输出a到b之间的所有素数。每个数占一行。

【输入样例】
5 10
【输出样例】
5
7

from math import sqrt
a,b=map(int,input().split())
for i in range(a,b+1):
    x=2
    while x<=int(sqrt(i)) and i%x!=0:
        x+=1
    if x>int(sqrt(i)):
        print(i)

1064:练4.15  阶乘之和

【题目描述】
输入n,计算S=1! + 2! + 3! + … + n!的末6位(不含前导0)。n≤106, n!表示前n个正整数之积。

【输入】
输入n。

【输出】
如题述,求阶乘之和。

【输入样例】
10
【输出样例】
37913

n=int(input())
s=0
for i in range(1,n+1):
    f=1
    for j in range(1,i+1):
        f*=j
    s+=f
print(s%1000000)

1065:练4.16 分解质因数

【题目描述】
把一个合数分解成若干个质因数乘积的形式(即求质因数的过程)叫做分解质因数。分解质因数(也称分解素因数)只针对合数。

输入一个正整数n,将n分解成质因数乘积的形式。

【输入】
一个正整数n。

【输出】
分解成质因数乘积的形式。质因数必须由小到大,见样例。

【输入样例】
36
【输出样例】
36=2*2*3*3

n=int(input())
i=2
print(n,end="=")
while n!=1:
    while n%i==0:
        print(i,end="")
        n/=i
        if n!=1:
            print("*",end="")
    i+=1

习题在线测评网址

以上代码仅供参考学习,有好的意见请留言。

你可能感兴趣的:(Python练基础练习题,python)