其他分享
首页 > 其他分享> > 周末作业——循环练习题

周末作业——循环练习题

作者:互联网

1、判断101-200之间有多少个素数,并输出所有素数。

count = 0
print('101-200之间的素数有')
for num in range(101, 201):
    for x in range(2, int(num**0.5 + 1)):
        if num % x == 0:
            break
    else:
        print(num, end=' ')
        count += 1
print()
print('共有', count, '个')

2、求整数1~100的累加值,但要求跳过所有个位为3的数。

count = 0
for num in range(1, 101):
    if num % 10 == 3:
        continue
    count += num
print('累加值为', count)

3、有⼀分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的第20个分数

molecule = 1
denominator = 1   # Fibonacci_n的后一位
for x in range(20):
    molecule, denominator = denominator, molecule + denominator
print('第20个分数是:', denominator, '/', molecule)

4、写程序计算 n 的阶乘 n! 的结果

n = int(input('请输入n:'))
count = 1
for x in range(1, n + 1):
    count *= x
print('阶乘 n! 的结果', count)

5、求1+2!+3!+…+20!的和

count = 1
sum1 = 0
for x in range(1, 21):
    count *= x
    sum1 += count
print('结果是', sum1)

6、写程序求表达式 a + aa + aaa + aaaa+ … 的结果,其中a是1~9的数字,求和的项数用n来控制。(a和n可以用变量来表示)

例如:a为3, n为5的时候: 3 + 33 + 333 + 3333 + 33333

a = int(input('请输入参数a:'))
n = int(input('请输入参数n:'))
count = 0
for i in range(1, n+1):
    count += a
    a = a * 10 + a % 10
print(count)

7、控制台输出三角形

a.根据n的值的不同,输出相应的形状
n = 5时             n = 4
*****               ****
****                ***
***                 **
**                  *
*
n = int(input('请输入参数n:'))
for x in range(n):
    for y in range(n, x, -1):
        print('*', end='')
    print()

b.根据n的值的不同,输出相应的形状(n为奇数)
n = 5               n = 7
  *                    *
 ***                  ***
*****                *****
                    *******
n = int(input('请输入参数n:'))
while True:
    if n % 2 == 0:
        n = int(input('请输入奇数!请输入参数n:'))
        continue
    else:
        for x in range(n // 2 + 1):
            for z in range(n // 2 - x):
                print(end=' ')
            for y in range(x * 2 + 1):
                print('*', end='')
            print()
        break

c. 根据n的值的不同,输出相应的形状
n = 4
   1
  121
 12321
1234321

n = 5
    1
   121
  12321
 1234321
123454321
n = int(input('请输入参数n:'))
for x in range(n):
    for y in range(n-x):
        print(' ', end='')
    for z in range(1, x+2):
        print(z, end='')
    for z in range(x, 0, -1):
        print(z, end='')
    print()

8、小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元正好花掉,可有哪些购买结合?

shampoo = 0    # 洗发水
soap = 0       # 香皂
toothbrush = 0  # 牙刷
for shampoo in range(1, 7):
    for soap in range(1, 51):
        toothbrush = (100 - shampoo * 15 - soap * 2) // 5
        if (100 - shampoo*15 - soap*2) % 5 == 0 and toothbrush > 0:
            print('洗发水:', shampoo, '香皂:', soap, '牙刷:', toothbrush)

9、一张纸的厚度大约是0.08mm,对折多少次之后能达到珠穆朗玛峰的高度(8848.13米)?

count = 0
n = 1
unit = 8e-5
while count < 8848.13:
    count = unit * 2**n
    n += 1
print(n)

10、古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

mouth0 = 1      # 第一个月的兔子对数
mouth1 = 1      # 第二个月的兔子对数
n = int(input('请输入月份'))
if n == 1 or n == 2:    # 前两个月兔子还没成年,兔子总数是2个
    print('前两个月兔子还没成年,兔子总数是2个')
else:
    for x in range(3, n+1):
        mouth1, mouth0 = mouth0 + mouth1, mouth1
    print('第', n, '月兔子有', 2*mouth1, '只')

11、将一个正整数分解质因数。例如:输入90,打印出90=2x3x3x5。

num = int(input('请输入一个正整数:'))
sum1 = num
temp = []           # 存储因数的列表
while sum1 != 1:
    for x in range(2, num + 1):
        if sum1 % x == 0:
            temp.append(x)       # 得到一个因数就将它添加到temp列表中
            sum1 //= x           # 将sum1替换成另一个因数,直到sum1变成1;
            if sum1 != 1:
                temp.append('x')    # 每进行添加一个因数,就添加一个x,最后一次不添加
            break
if len(temp) == 1:   # temp列表里只有一个元素,表面输入的数是素数
    print('这是个素数')
else:
    print(num, '=', end='', sep='')
    for x in temp:
        print(x, end='')                    #  按规定输出

12、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。求输入的四位整数加密后的值

while True:
    number = input('请输入数据:')
    if len(number) == 4:
        number = int(number)
        qian = number // 1000
        bai = number // 100 % 10
        shi = number // 10 % 10
        ge = number % 10
        qian, ge = (ge + 5) % 10, (qian + 5) % 10
        bai, shi = (shi + 5) % 10, (bai + 5) % 10
        number = qian*1000 + bai*100 + shi*10 + ge
        print('加密值', number)
        break
    else:
        print('你输入的不是4位整数,请重新输入')

13、本金10000元存入银行,年利率是千分之三。每过1年,将本金和利息相加作为新的本金。计算5年后,获得的本金是多少。

money = 10000
for x in range(1, 6):
    money += money*0.003
print('5年后的本金是', money, '元')

14、输入一个整数,计算它各位上数字的和。(注意:输入的整数可以是任意位)

number = int(input('请输入一个整数'))
count = 0
while number != 0:
    if number > 0:
        count += number % 10
        number = number // 10
    else:
        count += 10 - number % 10
        number = number // 10 + 1
print('它各位上数字的和是:', count)

15、求两个数的最大公约数和最小公倍数。(提示:公约数一定小于等于两数中的小的那个数,且能同时被两个数整除;公倍数一定大于等于两数中的大数,且是大数的倍数又能被两数中的小数整除)

a = int(input('请输入一个数'))
b = int(input('请输入另一个数'))
divisor = 1   # 公约数
n = a if a < b else b
for x in range(2, n):
    if a % x == 0 and b % x == 0:
        divisor *= x
print(divisor)
print(a*b//divisor)

标签:练习题,count,10,int,作业,number,周末,range,print
来源: https://blog.csdn.net/YiCunHui12138/article/details/121701144