Python第四、五天的作业

作业1:判断以下哪些不能作为标识符    

作业2:输入数,判断这个数是否是质数(要求使用函数 + for循环)

num = int(input('请输入一个整数,判断是否为质数:'))
def judge():
	flag = True
	for i in range(2, num // 2 + 1):
		if num % i == 0:
			flag = False
			break
	if flag:
		print(f'{num}为质数')
	else:
		print(f'{num}为合数')

judge()

  

作业3:求50~150之间的质数是那些?

def judge():
	print('50~150之间的质数有')
	for i in range(50, 151):
		for j in range(2, i):
			if i % j == 0:
				break
		else:
			print(f'{i}  ',end="")


judge()

作业4:打印输出标准水仙花数,输出这些水仙花数

def PPDI():
	print('水仙花数有:', end="")
	for i in range(100, 1000):
		b = i // 100
		s = i % 100 // 10
		g = i % 10
		if i == b ** 3 + s ** 3 + g ** 3:
			print(f'{i}  ', end="")


PPDI()

作业5:验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除

def divisible(num):
	if num <= 9:
		return
	count = 0
	num_start = num
	while num > 0:
		count += num % 10
		num //= 10
	if (num_start - count) % 9 == 0:
		return True
	return False


num = int(input('请输入一个大于9的整数:'))
print(divisible(num))

作业6:求五位数

一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.

def fn():
	for num in range(10000, 100000):
		A = 10 * num + 7
		B = 7 * 100000 + num
		if B / A == 5:
			print(num)


fn()

 

作业7:① 求十进制数字9的二进制编码

def tenTotwo(num):
	s = []
	binstring = ''
	print(f'{num}的二进制编码为:',end="")
	while num > 0:
		rem = num % 2
		s.append(rem)
		num //= 2
	while len(s) > 0:
		binstring += str(s.pop())
	print(binstring)


num = int(input('请输入一个正整数:'))
tenTotwo(num)

             ② 求十进制数字9的二进制编码中的1的数量

def tenTotwo(num):
	s = []
	binstring = ''
	count = 0
	while num > 0:
		rem = num % 2
		s.append(rem)
		num //= 2
	for i in str(s):
		if i == '1':
			count += 1
	return count


print('9的二进制编码数量为:',tenTotwo(9))


作业8:求1~100之间不能被3整除的数之和

def get_count():
	total = 0
	for n in range(1, 101):
		if n % 3 != 0:
			total += n
	print(f'1~100之间不能被3整除的数之和为{total}')


get_count()

作业9:给定一个正整数N,找出1到N(含)之间所有质数的总和

def prime_count(N: int):
	count = 0
	for N in range(1, N+1):
		if N > 0:
			for i in range(2, N):
				if N % i == 0:
					break
			else:
				count += N
	print(f'1到N之间所有质数的总和为{count - 1}')


N = int(input('请输入一个正整数:'))
prime_count(N)

作业10:计算PI

(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......)

当有一项的绝对值小于10e-6停止计算

def PI():
	ans = 0
	add = 1
	sign = 1
	while 1 / add > 10 ** (-6):
		ans += sign / add
		add += 2
		sign = -sign
	else:
		ans += sign / add
	print(f'pi = {ans * 4}')

		
PI()

作业11:求a+aa+aaa+.......+aaaaaaaaa=?

其中a为1至9之中的一个数,项数也要可以指定

def get_count(n: int):
	if n == 1:
		return a
	return a * (10 ** n - 1) / 9 + get_count(n - 1)


n = int(input('请输入项数:'))
a = int(input('请输入1~9之中的整数:'))
count = get_count(n)
print(f'{a} + {a * 10 + a} + …… + {a * (10 ** n - 1) / 9} = {count}')


作业12: 找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)

def divisible():
	print('10000以内能被5或6整除,但不能被两者同时整除的数有:')
	for n in range(1, 10001):
		if n % 5 == 0 or n % 6 == 0 and n % 30 != 0:
			print(f'{n} ',end="")


divisible()

作业13:① 不死兔子

def rabbit(n: int):
	if n == 1 or n == 2:
		return 1
	return rabbit(n - 1) + rabbit(n - 2)


rabbit_num = rabbit(12)
print(f'一年后共有{rabbit_num}对兔子')

  

               ②  跳楼梯问题

def staircase(n: int):
	if n == 1 or n == 2:
		return n
	return staircase(n - 1) + staircase(n - 2)


n = int(input('请输入楼梯数:'))
staircase_num = staircase(n)
print(f'共有{staircase_num}种走法')

  

作业14:汉诺塔问题

def move(n, A, B, C):
	if n == 1:
		print(A, ' --> ', C)
		return
	move(n - 1, A, C, B)
	move(1, A, B, C)
	move(n - 1, B, A, C)


n = int(input('请输入需要移动的圆盘的个数:'))
move(n, 'A', 'B', "C")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值