基础
读程序,总结程序的功能:
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(包括100)的能够被3或7整除,并且不能被21整除的数的个数
3.求1到100之间所有数的和、平均值
sum1 = 0
for i in range(101):
sum1 += i
print(sum1)
ave = sum1 / 100
print(ave)
结果:
5050
50.5
4.计算1-100之间能3整除的数的和
sum1 = 0
for i in range(101):
if not i%3:
sum1 += i
print(sum1)
结果:
1683
5.计算1-100之间不能被7整除的数的和
sum1 = 0
for i in range(101):
if i%7:
sum1 += i
print(sum1)
结果:
4315
6.有一对兔子,从出生后第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
循环:
n = input('请输入要第几个月的兔子数:')
sum1 = 1
sum2 = 1
for i in range(3, int(n)+1):
if 3 > int(n) >= 1:
print('1')
else:
temp = sum1 + sum2
sum1 = sum2
sum2 = temp
print(temp)
结果:
请输入要第几个月的兔子数:6
8
递归:
def rabbits(n):
if n<=2:
return 1
else:
return rabbits(n-1)+rabbits(n-2)
n = input('请输入要第几个月的兔子数:')
print(rabbits(int(n)))
结果:
请输入要第几个月的兔子数:6
8
7.判断101-200之间有多少个素数,并输出所有素数。判断素数的方法:用一个数分别除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数
import math
list1 = []
for index1 in range(101, 200):
num_sqrt = int(math.sqrt(index1))
for index2 in range(2, num_sqrt+1):
if not index1%index2:
break
elif index2==num_sqrt:
list1.append(index1)
print(list1)
结果:
[101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199]
8.打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153 = 1^3 + 5^3 + 3^3
list1 = []
for num in range(100, 999):
num_str = str(num)
if num==int(num_str[0]) ** 3 + int(num_str[1]) ** 3 + int(num_str[2]) ** 3:
list1.append(num)
print(list1)
结果
[153, 370, 371, 407]
9.有一分数序列: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
denominator = 1
numerator = 2
index = 1
flag = 20
while index!=flag:
temp = denominator
denominator = numerator
numerator = temp + numerator
index += 1
print(numerator, '/', denominator)
结果:
17711 / 10946
10.给一个正整数,要求:1、求它是几位数 2.逆序打印出各位数字
num = input('请输入一个整数:')
print('%s的长度是:%s'%(num,len(num)))
print('逆序输出为:', num[::-1])
结果:
请输入一个整数:12356
12356的长度是:5
逆序输出为: 65321
网友评论