2018-08-23 day4 作业
2018-08-24 本文已影响0人
xaidc
1.基础
1.读程序,总结程序的功能
答:计算2的20次方
答:计1-100中,能被3整除或者被7整除但是不能被21整除的数有多少个
2.编程实现(for和while各写一遍)
1.求1到100之间的所有数的和,平均值
#for循环
num1 = 0
for i in range(0,101):
num1 += i
avg1 = num1/i
print("1-100的所有数的和为%d,平均值为%.2f" % (num1,avg1))
输出结果
1-100的所有数的和为5050,平均值为50.50
#while循环
x=1
num2=0
while x <= 100:
num2 += x
x += 1
avg2=num2/(x-1)
print("1-100的所有数的和为%d,平均值为%.2f" % (num2,avg2))
输出结果
1-100的所有数的和为5050,平均值为50.50
2.计算1到100之间能3整除的数的和
#for循环
num3 = 0
for y in range(1,101):
if not y % 3:
num3 += y
print("1-100之间能3整除的数的和为:%d" % num3)
输出结果
1-100之间能3整除的数的和为:1683
#while循环
n = 1
num4 = 0
while n <= 100:
if not n % 3:
num4 += n
n += 1
print("1-100之间能3整除的数的和为:%d" % num4)
输出结果
1-100之间能3整除的数的和为:1683
3.计算1到100之间不能被7整除的和
#for循环
num5 = 0
for a in range (1,101):
if a%7:
num5 += a
print("1-100之间不能被7整除的数的和为:%d" % num5)
输出结果
1-100之间不能被7整除的数的和为:4315
#while 循环
z = 1
num6 = 0
while z <= 100:
if z%7 :
num6 += z
z += 1
print("1-100之间不能被7整除的数的和为:%d" % num6)
输出结果
1-100之间不能被7整除的数的和为:4315
3
1.求斐波那契数列中的第n个数的值:1,1,2,3,5,8,13,21,34...
n = int(input("输入你想求斐波那契数列第几个数的值:"))
num1=num2=1
num=0
i = 2
while i < n :
num=num1+num2
num1=num2
num2=num
i += 1
if (n == 1 or n ==2):
num=1
print("斐波那契数列第%d个的数的值是:%d" % (n,num))
输出结果:
输入你想求斐波那契数列第几个数的值:9
斐波那契数列第9个的数的值是:34
2.判断101-200之间有多少个素数,并输出所有素数。判断素数的方法在;用一个数分别除2到sqrt(这个数),如果能被整除,则表明次数不是素数,反之是素数。
import math
num = 0
for i in range(101,201):
for x in range(2,int(math.sqrt(i))+1):
if i%x ==0:
break
else:
num += 1
print(i)
print('101-200之间有%d个素数'% num)
输出结果:
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
101-200之间有21个素数
03打印出所有的水仙花数,所谓水仙花数是指一个三位数。其各位数字立方和等于该数本身。例如153就是一个水仙花数,因为153=13+53+3^3
num = 0
for i in range(100,1000):
newstr=str(i)
if (i ==int((newstr[0]))**3+int((newstr[1]))**3+int((newstr[2]))**3):
print(newstr)
num += 1
print("一共有%d个三位数是水仙花数"%num)
输出结果
153
370
371
407
一共有4个三位数是水仙花数
04有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的第20个分数。分子:上一个分数的分子加分母,分母:上一个分数的分子。fz=2 fm = 1 fz+fm/fz
fz = 2
fm = 1
fm1 = 0
for i in range(1,20):
fm1 = fz +fm
fm = fz
fz=fm1
print("这个数列第二十个是:%d/%d"%(fz,fm) )
输出结果
这个数列第二十个是:17711/10946
05.给一个正整数,要求:1.求他是几位数 2.逆序打印出各位数字
n=int(input("请输入一个正整数:"))
newstr=str(n)
print("这个正整数是%d位数"%len(newstr))
print(int(newstr[::-1]))
输出结果
请输入一个正整数:6758
这个正整数是4位数
8576