ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

周末作业——循环练习题

2021-12-04 12:03:01  阅读:165  来源: 互联网

标签:练习题 count 10 int 作业 number 周末 range print


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有