2018-08-23-day4-作业

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

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


numbers=1 i=0 numbers=numbers2=12=2=2^1
numbers=2^1 i=1 numbers=numbers2=22=4=2^2
numbers=2^2 i=2 numbers=numbers2=42=8=2^3
numbers=2^3 i=3 numbers=numbers2=82=16=2^4
..........
numbers=2^19 i=19 numbers=numbers*2=2^20
功能:求出2的20次方


2、
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)


if条件语句:
(num%3==0 or num%7==0) and num%21!=0
判断
“!=0”——>not False--->条件返回为True
即 (num%3==0 or num%7==0) and num%21返回为True
num为3或7的倍数,且为21的倍数
num初值为1,执行循环num=num+1,num<=100
综上,功能是求出1~100内为3和21,7和21的公倍数之和

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

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

输出:5050 50.5

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

输出:1683

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

输出:4315

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

num1=1  #第一位奇数为1
num2=1  #第二位偶数为1
x=3     #从第三位开始求
import random
n=random.randint(1,100)
print('n为%d'%(n))
while x<=n:
    if x%2:  #x是奇数
        num1+=num2
    else:
        num2+=num1
    if x==n:
        break
    x+=1
print('第%d位'%x)
if x%2: #x是奇数
    print('第%d位是%d'%(x,num1))
else:
    print('第%d位是%d'%(x,num2))

输出:n为55
第55位
第55位是139583862445

你可能感兴趣的:(2018-08-23-day4-作业)