基础
读程序,总结程序的功能:
numbers=1
for i in range(0,20):
numbers*=2
print(numbers)
1.求等比数列 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)
2.计算在100以内能够被3和7整除,但不能同时被3和7整除的数出现的次数
编程实现(for和while各写一遍):
1.求1到100之间所有数的和、平均值
# for:
# 变量ave为平均值,变量sum1为和
sum1 = 0
ave = 0
for num in range(1, 101):
sum1 += num
ave = sum1 / num
print('1到100之间所有数的和为:%d' % sum1)
print('1到100之间所有数的平均值为:%.2f' % ave)
# while:
# 变量ave为平均值,变量sum1为和
sum1 = 0
ave = 0
num = 1
while num <= 100:
sum1 += num
num += 1
ave = sum1 / num
print('1到100之间所有数的和为:%d' % sum1)
print('1到100之间所有数的平均值为:%.2f' % ave)
2.计算1-100之间能被3整除的数的和
# for:
# 变量sum1为和
sum1 = 0
for num in range(1, 101):
if num % 3 == 0:
sum1 += num
print('1-100之间能被3整除的数的和为:%d' % sum1)
# while:
# 变量sum1为和
sum1 = 0
num = 1
while num <= 100:
if num % 3 == 0:
sum1 += num
num += 1
print('1-100之间能被3整除的数的和为:%d' % sum1)
3.计算1-100之间不能被7整除的数的和
# for:
# 变量sum1为和
sum1 = 0
for num in range(1, 101):
if num % 7 == 0:
sum1 += num
print('1-100之间能被7整除的数的和为:%d' % sum1)
# while:
# 变量sum1为和
sum1 = 0
num = 1
while num <= 100:
if num % 7 == 0:
sum1 += num
num += 1
print('1-100之间能被7整除的数的和为:%d' % sum1)
稍微困难
1.求斐波那契数列中第n个数的值:1, 1, 2, 3, 5, 8, 13, 21, 34....
# 输入第n个数
n = int(input('请输入一个数:'))
num1 = 1
num2 = 1
i = 0
list1 = []
while i < n:
num1 = num1 + num2
list1.append(num1)
num2 = num2 + num1
list1.append(num2)
i += 1
print(list1[n - 3])
2.判断101-200之间有多少个素数,并输出所有素数。判断素数的方法:用一个数分别除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
count = 0
for num1 in range(101, 201):
for num2 in range(2, num1):
if num1 % num2 == 0:
break
else:
count += 1
print('%d是素数' % num1)
print('101-200之间有%d个素数' % count)
3.打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数立方和等于该数本身。
例如: 153是一个水仙花数,因为153 = 13 + 53 + 3**3
for num in range(100, 1000):
a = num // 100
b = num // 10 % 10
c = num % 100 % 10
if num == a**3 + b**3 + c**3:
print('%d是一个水仙花数' % num)
4.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的第20个分数
分子:上⼀个分数的分⼦子加分母 分母: 上一个分数的分⼦ fz = 2 fm = 1 fz+fm / fz
n = int(input('请输入第n个分数:'))
sum1 = 0
fz = 2
fm = 1
z = 0
i = 1
while i <= n:
sum1 = fz / fm
z = fz + fm
fm = fz
fz = z
i += 1
print('第%d个的分数为%f' % (n, sum1))
5.给⼀个正整数,要求:1、求它是⼏位数 2.逆序打印出各位数字
num = input('请输入一个正整数:')
print('%s是一个%d位数' % (num, len(num)))
print('逆序打印出各位数字:', num[::-1])
网友评论