赞
踩
最开始看到题就想到了进制转换,我是自己定义了两个进制转换的函数来进行进制转换。首先先用短除法理一下进制转换的思路。
首先我们定义一个转换为二进制数的函数,为了方便后续操作,我们用列表存储二进制数每一位的元素。
- def zhuan_two(x):
- a=[]
- while x!=0:
- b=x%2
- a.append(b)
- x//=2
- a.reverse()
- return a
四进制与之相类似,再定义一个判断各个位之和是否相等的函数,即可求出答案。
- #定义一个转化为二进制的函数
- def zhuan_two(x):
- a=[]
- while x!=0:
- b=x%2
- a.append(b)
- x//=2
- a.reverse()
- return a
- #定义一个转化为四进制的函数
- def zhuan_four(x):
- a=[]
- while x!=0:
- b=x%4
- a.append(b)
- x//=4
- a.reverse()
- return a
- def sum_digit(n):
- if sum(zhuan_two(n))==sum(zhuan_four(n)):
- return True
- ans=0
- for i in range(1,2025):
- if sum_digit(i):
- ans+=1
- print(ans)
63
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。