day004 作业

2018-07-20  本文已影响0人  Yehao_

读程序,总结功能

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倍数的数的个数。

编程题

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

# for循环
sum = 0
avg = 0
for i in range(1,101):
    i += 1
    sum += i
avg = sum / len(range(1, 101))
print('1到100之间所有数的和:', sum, ',平均数:', avg)

Output:
1到100之间所有数的和: 5150 ,平均数: 51.5

# while循环
sum = 0
num = 1
avg = 0
while num < 101:
    num += 1
    sum += num
avg = sum / 100
print(sum,avg)

Output:
5150 51.5

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

# for循环
sum = 0
for i in range(0,101,3):
    sum += i
print('1-100之间能3整除的数的和为:', sum)

Output:
1-100之间能3整除的数的和为: 1683

# while循环
sum = 0
num = 0
while num < 101:
    if not num % 3:
        sum += num
        num += 3
print(sum)

Output:
1683
  1. 计算1-100之间不能被7整除的数的和
# for循环
sum = 0
for i in range(1,101):
    if i % 7:
        sum += i
        i += 1
print('1-100之间不能被7整除的数的和为:', sum)

Output:
1-100之间不能被7整除的数的和为: 4315

# while循环
num = 1
sum = 0
while num < 101:
    if num % 7:
        sum += num
        num += 1
print(sum)

Output:
4315

稍微困难

  1. 有一对兔子,从出生后第3个月起,每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第n个月的兔子总共有多少?
    规律: 第一个月和第二个月的数量都是1 从第三个月开始 n =( n-1) + (n-2)
    1,1,2,3,5,8,13,21...n?
    1 1
    2 1
    3 2 = 1+1
    4 3 = 1+2
    5 5 = 2+3
    6 8 = 3+5
    n 第(n-1)+第(n-2)
    n = n1 + n2
    n==3 n1=1,n2=1 n=n1+n2=2
    n==4 n1 = n2 n2 = n n = n1+n2

  1. 判断101-200之间的素数,并输出所有素数。判断素数的方法:用一个数分别除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数
for number in range(101,201):
    count = 0
    for x in range(2,number):
        if number % x == 0:
            count += 1
            break
    if count == 0:
        print(number, end=' ')

Output:
101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 
  1. 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153 = 1^3 + 5^3 + 3^3
from math import pow

for i in range(100, 1000):
    x = i // 100  # 百位
    y = (i % 100) // 10  # 十位
    z = i % 10  # 个位
    if pow(x, 3) + pow(y, 3) + pow(z, 3) == i:
        print(i)

Output:
153
370
371
407

  1. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的第20个分数
    1 2 1
    2 3 2
    3 5 3
    4 8 5
    分子:上一个分数的分子加分母 分母: 上一个分数的分子
    fz = 2 fm = 1
    fz+fm / fz
  1. 给一个正整数,要求:1、求它是几位数 2.逆序打印出各位数字
print('请输入一个正整数')
num = int(input())
num_str = str(num)
length = len(num_str)
print('该正整数是%d位数。' % length)
reverse_num = num_str[::-1]
print('逆序打印出各位数字:', reverse_num)

Output:
请输入一个正整数
3456541
该正整数是7位数。
逆序打印出各位数字: 1456543

上一篇 下一篇

猜你喜欢

热点阅读