2019-07-25 day4 作业

一 基础

读程序,总结程序的功能

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

答:输出的是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)

答:输出的是1到100之间能被3或者7整除但是不能被21整除的数一共有多少个.

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

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

sum2 = 0
num = 1
while num < 100:
  sum2 += num
  num += 1
print(sum2, sum2/99)
  1. 计算1-100之间能3整除的数的和
sum1 = 0
for x in range(1,100):
  if x % 3 == 0:
    sum1 += x
print(sum1)
num = 1
while num < 100:
    if num % 3 == 0:
        sum2 += num
    num +=1
print(sum2)

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

二 稍微困难

  1. 求斐波那契数列列中第n个数的值:1,1,2,3,5,8,13,21,34....
n = int(input('请输入第几个数:'))
num1 = 0
num2 = 1
while n > 0 :
    num1 , num2 = num2, num1 + num2
    n -= 1
print(num1)
  1. 判断101-200之间有多少个素数,并输出所有素数。判断素数的⽅方法:⽤一个数分别除2到sqrt(这个 数),如果能被整除,则表明此数不是素数,反之是素数
num = 2
count = 0
for i in range(101,200):
    while num < sqrt(i):
        # print(num,end=' ')
        if i % num == 0:
            num = 2
            break
        num += 1
    else:
        count += 1
        print(i)
        num = 2
print(count)

  1. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是 一个水仙花数,因为153 = 1^3 + 5^3 + 3^3
# 个位
num = 0
# 十位
num_10 = 0
# 百位
num_100 = 0
for i in range(100,1000):
    num = i % 10
    num_10 = i // 10 % 10
    num_100 = i // 100
    if i == (num**3 + num_10**3 + num_100**3):
        print(i)
  1. 有一分数序列列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的第20个分数 分子:上⼀一个分数的分⼦子加分⺟母 分⺟母: 上⼀一个分数的分⼦子 fz = 2 fm = 1 fz+fm / fz
n = int(input('请输入第几个数:'))
# 分母
denominator = 2
# 分子
molecule = 1
while n > 0 :
    # print(denominator,molecule,n)
    molecule , denominator = denominator, molecule + denominator
    n -= 1
print(molecule)
  1. 给一个正整数,要求:1、求它是几位数 2.逆序打印出各位数字
m = int(input('请输入一个整数:'))
i = 0
n = 10
while True:
    if m // n != 0:
        i += 1
        n *= 10
    else:
        i += 1
        print('m是' + str(i) + '位数', end=' ')
        break

j = i
a = 0
while j:
    print(m // 10**a % 10, end=' ')
    a += 1
    j -= 1

提高

1.控制台输入年龄,根据年龄输出不同的提示(例如:老年人,青壮年,成年人,未成年,儿童)

上课已讲

2.计算5的阶乘 5!的结果是

num = 1
for i in range(1,6):
    # print(i, end=' ')
    num *= i
    # print(num)
print(num)

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

num = 1 # 记录每个数的阶乘
sum1 = 0  #记录每个数的阶乘的和
for j in range(1,21):
    i = 1
    while i <= j:
        # print(i, end=' ')
        num *= i
        i += 1
        # print(num)
    # print(num,j , end=' ')
    sum1 += num
    num = 1
    print(sum1)
print(sum1)

4.计算 1+1/2!+1/3!+1/4!+...1/20!=?

num = 1 # 记录每个数的阶乘
sum1 = 0  #记录每个数的阶乘的和
for j in range(1,21):
    i = 1
    while i <= j:
        # print(i, end=' ')
        num *= i
        num = 1 / num
        i += 1
        # print(num)
    # print(num,j , end=' ')
    sum1 += num
    num = 1
    print(sum1)
print(sum1)

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

num = int(input('请输入数字:'))
sum1 = 0
while num != 0:
    sum1 += num
    num = int(input('请输入数字:'))
print('完成!')
print(sum1)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容