Day05-作业

基础

读程序,总结程序的功能:

numbers=1
for i in range(0,20):
numbers*=2
print(numbers)

1.求等比数列 2的20次方

summation=0
num=1
while num<=100:
if (num%3==0 or num%7==0) and num%21!=0:
summation += 1
num+=1
print(summation)

2.计算在100以内能够被3和7整除,但不能同时被3和7整除的数出现的次数

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

1.求1到100之间所有数的和、平均值

# for:
# 变量ave为平均值,变量sum1为和
sum1 = 0
ave = 0
for num in range(1, 101):
    sum1 += num
ave = sum1 / num
print('1到100之间所有数的和为:%d' % sum1)
print('1到100之间所有数的平均值为:%.2f' % ave)

# while:
# 变量ave为平均值,变量sum1为和
sum1 = 0
ave = 0
num = 1
while num <= 100:
    sum1 += num
    num += 1
ave = sum1 / num
print('1到100之间所有数的和为:%d' % sum1)
print('1到100之间所有数的平均值为:%.2f' % ave)

2.计算1-100之间能被3整除的数的和

# for:
# 变量sum1为和
sum1 = 0
for num in range(1, 101):
    if num % 3 == 0:
        sum1 += num
print('1-100之间能被3整除的数的和为:%d' % sum1)

# while:
# 变量sum1为和
sum1 = 0
num = 1
while num <= 100:
    if num % 3 == 0:
        sum1 += num
    num += 1
print('1-100之间能被3整除的数的和为:%d' % sum1)

3.计算1-100之间不能被7整除的数的和

# for:
# 变量sum1为和
sum1 = 0
for num in range(1, 101):
    if num % 7 == 0:
        sum1 += num
print('1-100之间能被7整除的数的和为:%d' % sum1)

# while:
# 变量sum1为和
sum1 = 0
num = 1
while num <= 100:
    if num % 7 == 0:
        sum1 += num
    num += 1
print('1-100之间能被7整除的数的和为:%d' % sum1)

稍微困难

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

# 输入第n个数
n = int(input('请输入一个数:'))
num1 = 1
num2 = 1
i = 0
list1 = []
while i < n:
    num1 = num1 + num2
    list1.append(num1)
    num2 = num2 + num1
    list1.append(num2)
    i += 1
print(list1[n - 3])

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

count = 0
for num1 in range(101, 201):
    for num2 in range(2, num1):
        if num1 % num2 == 0:
            break
    else:
        count += 1
        print('%d是素数' % num1)
print('101-200之间有%d个素数' % count)

3.打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数立方和等于该数本身。

例如: 153是一个水仙花数,因为153 = 13 + 53 + 3**3

for num in range(100, 1000):
    a = num // 100
    b = num // 10 % 10
    c = num % 100 % 10
    if num == a**3 + b**3 + c**3:
        print('%d是一个水仙花数' % num)

4.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的第20个分数

分子:上⼀个分数的分⼦子加分母 分母: 上一个分数的分⼦ fz = 2 fm = 1 fz+fm / fz

n = int(input('请输入第n个分数:'))
sum1 = 0
fz = 2
fm = 1
z = 0
i = 1
while i <= n:
    sum1 = fz / fm
    z = fz + fm
    fm = fz
    fz = z
    i += 1
print('第%d个的分数为%f' % (n, sum1))

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

num = input('请输入一个正整数:')
print('%s是一个%d位数' % (num, len(num)))
print('逆序打印出各位数字:', num[::-1])

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