题目1:算法训练 1的个数
解题思路:
遍历,然后利用列表中的count()方法
代码
n = int(input())
ans = 0
for i in range(1,n+1):
ans += list(str(i)).count("1")
print(ans)
题目2:算法训练 2的次幂表示
解题思路
递归
先写 递归实现 转二进制
改进:写成次幂表示
改进:括号里 用次幂表示
代码
def solution(n, count):
if n // 2 == 0:
if count == 1:
print("2", end='')
elif count > 2:
print("2(",end='')
solution(count, 0)
print(")",end='')
else:
print("2(" + str(count) + ")", end='')
else:
solution(n // 2, count + 1)
if n % 2 == 0:
count -= 1
else:
if count == 1:
print("+2", end='')
elif count > 2:
print("+2(", end='')
solution(count, 0)
print(")", end='')
else:
print("+2(" + str(count) + ")", end='')
count -= 1
n = int(input())
solution(n, 0)