day-4作业

编程实现(for和while各写⼀一遍):

  1. 求1到100之间所有数的和、平均值
sum1 = 0
for num in range(1, 101):
    sum1 += num
print(sum1, sum1/100)

num = 1
sum1 = 0
while True:
    if num > 100:
        break
    sum1 += num
    num += 1
print(sum1, sum1/100)
  1. 计算1-100之间能3整除的数的和
sum1 = 0
for num in range(0, 101, 3):
    sum1 += num
print('和', sum1)


num = 0
sum1 = 0
while num <= 100:
    sum1 += num
    num += 3
print('和', sum1)
  1. 计算1-100之间不不能被7整除的数的和
sum1 = 0
for num in range(0, 101):
    if num % 7 != 0:
        sum1 += num
print(sum1)

num = 0
count = 0
num1 = 0
while True:
    if count == 101:
        break
    elif num % 7 != 0:
        num1 += num
    count += 1
    num += 1

print(num1)

求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34....

pre_1 = 1  #    前第一个数
pre_2 = 1  #   前第二个数
n = 6     # 第n个数
current = pre_1 + pre_2
if n == 1 or n == 2:
    current = 1

for x in range(n-2):
    # 求和
    current = pre_1 + pre_2
    # 交换位置
    # pre_2 = pre_1
    # pre_1 = current
    pre_1, pre_2 = current, pre_1
print(current)

判断101-200之间有多少个素数,并输出所有素数。判断素数的⽅方法:⽤一个数分别除2到sqrt(这个 数),如果能被整除,则表明此数不是素数,反之是素数

count = 0
for num in range(101, 201):
    # print(num)
    # 判断取出来的数是否是素数
    for x in range(2, num):
        if num % x == 0:
            # print(num, '不是素数')
            break
    else:
        print(num, '是素数')
        count += 1
print(count)


打印出所有的⽔水仙花数,所谓⽔水仙花数是指⼀一个三位数,其各位数字⽴方和等于该数本身。例例如:153是
一个水仙花数,因为153 = 1^3 + 5^3 + 3^3

for num in range(100, 1000):
    ge = num % 10
    shi = num // 10 % 10
    bai = num // 100
    if num == ge**3 + shi**3 + bai**3:        print(num, '是水仙花数')    

有分数序列:(1/1),2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列列的第20个分数
分子:上一个分数的分子加分母 分母: 上一个分数的分子 fz = 2 fm = 1 fz+fm / fz
补充,python交换两个数的值: a, b = b, a
分子 : 下一个分子 == 上一个分数的分子+分母
分母 : 下一个分母 == 上一个分数的分子

fz = 1
fm = 1
for x in range(20):
    fz, fm = fz + fm, fz
print(fz, '/', fm)

给个正整数,要求:1、求它是几位数 2.逆序打印出各位数字

num = 35543
count = 0
while True:
    print(num % 10)
    num //= 10
    count += 1
    if num == 0:
        break
print()
print(count)

求1+2!+3!+...+20!的和 1.程序分析:此程序只是把累加变成了累乘。

sum1 = 0  # 保存最后的和
for num in range(1, 21):
    sum2 = 1   # 保存当前取出来的数的阶乘
    for x in range(1, num+1):
        sum2 *= x
    sum1 += sum2
print(sum1)

循环输入大于0的数字进行累加,直到输入的数字为0,就结束循环,并最后输出累加的结果。

sum1 = 0
while True:
    num = int(input('请输入数字:'))
    sum1 += num
    if num == 0:
        break
print(sum1)

求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。 1.程序分析:关键是计算出每一项的值。

num = 4
n = 6
sum1 = 0
num1 = num
for x in range(n):
    print(num)
    sum1 += num
    num = num*10 + num1
print(sum1)

求1+12+123+1234++++++++123456789 = ?

n = 9
num = 0
sum1 = 0
for x in range(1, 10):
    num = num*10 + x
    sum1 += num
    print(sum1)

输入三个整数x,y,z,请把这三个数由小到大输出。

x = 2
y = 5
z = 6

max1 = x
if y > max1:
    max1 = y
if z > max1:
    max1 = z
print(max1)
min1 = x
if y < min1:
    min1 = y
if z < min1:
    min1 = z

print(min1)
print('中间:')

这是经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?

for big in range(1, 100//3):
    for mid in range(1, 100//2):
        for small in range(2, 100, 2):
            if big+mid+small == 100 and big*3 + mid*2 + small/2 == 100:
                print('大马:', big, '中马:', mid, '小马:', small)

我国古代数学家张邱建在《算经》:中出了一道“百钱买百鸡”的问题,题意是这样的
5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡 。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。

for x in range(1, 100//5):
    for y in range(1, 100//3):
        for z in range(1, 100):
            if x+y+z == 100 and x*5 + y*3 + z/3 == 100:
                print('公鸡:', x, '母鸡:', y, '小鸡:', z)

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

for a in range(1, 100//15):
    for b in range(1, 100//2):
        for c in range(1, 100//5):
            if 15*a + 2*b + 5*c == 100:
                print('洗发水:', a, '香皂:', b, '牙刷:', c )

你可能感兴趣的:(day-4作业)