第一天
-
求一个十进制的数值的二进制的0、1的个数
-
实现一个用户管理系统(要求使用容器保存数据) [{name: xxx, pass: xxx, ……},{},{}]
-
求1~100之间不能被3整除的数之和
-
给定一个正整数N,找出1到N(含)之间所有质数的总和
-
计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......)
-
给定一个10个元素的列表,请完成排序(注意,不要使用系统api)
-
求 a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
-
合并两个有序数组,合并后还是有序列表
-
给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
第二天
-
给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n), 可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数
-
找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)
-
写一个方法,计算列表所有偶数下标元素的和(注意返回值)
-
【选做】某个人进入如下一个棋盘中,要求从左上角开始走, 最后从右下角出来(要求只能前进,不能后退), 问题:共有多少种走法?
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
汉诺塔
第一天
第一题:
#a = int(input("整数"))
a=120
count0=0
count1=0
while True:
b= a%2
a//=2
if b==0:
count0+=1
if b==1:
count1+=1
if a//2==0:
count1+=1
break
print(f"0有{count0}个,1有{count1}个")
第二题
def add(**kwargs):
return kwargs
l = list()
while True:
print("——————————————————————————————————————————————————")
print(" 欢迎进入学生管理系统\n"
" 1 添加学生\n"
" 2 打印学生\n"
" 3 退出")
print("——————————————————————————————————————————————————")
choice = input("输入你的选项")
if choice == "1":
a = input("name")
b = input("age")
d = dict(add(name=a, age=b))
l.append(d)
print("添加完成")
if choice == "2":
print(l)
if choice == "3":
break
第三题
i =1
sum =0
while i<=100:
if i%3!=0:
sum += i
i+=1
print(sum)
第四题
N = int(input("数"))
sum = 0
for i in range(1,N+1):
for j in range(2, i):
if i%j==0:
break
j=2
if i%j!=0:
print("%d是质数" % (i))
sum+=i
print(sum)
第五题
def My_pi(n):
pi=0
a=1
for i in range(n):
pi += a/(2*i+1)
a*=-1
return 4*pi
b = int(input("第几项"))
print(My_pi(b))
第六题
l =[9,8,7,6,5,4,3,2,1]
def My_sort(x):
i=0
while i<len(x):
j=0
while j<len(x)-i-1:
if x[j]>x[j+1]:
x[j], x[j + 1] = x[j + 1], x[j]
j+=1
i+=1
print(x)
My_sort(l)
第七题
def sum(x,y):
i=0
s = 0
while i<y:
s+=x * 10**i
i+=1
return s
a =int(input("1-9之间整数"))
b = int(input("几位数"))
print(sum(a,b))
第八题
l =[3,9,15,34,67]
l2 = [4,7,90,123]
def My_sort(x):
i=0
while i<len(x):
j=0
while j<len(x)-i-1:
if x[j]>x[j+1]:
x[j], x[j + 1] = x[j + 1], x[j]
j+=1
i+=1
i =0
while i<len(l):
l2.append(l[i])
i+=1
My_sort(l2)
print(l2)
第九题
l = [1,2,3,4,5,6,7,8,9]
l2 = list()
for i in range(0,len(l)):
if l[i]%2==0:
l2.append(l[i])
for i in range(0,len(l)):
if l[i]%2==1:
l2.append(l[i])
print(l2)
第二天
第一题
def find(nums):
nums.sort()
for i in range(len(nums) - 1):
if nums[i] == nums[i + 1]:
return nums[i]
nums = [1, 3, 4, 2,3]
print(find(nums))
第二题
def pd(x):
if x%5==0 and x%6==0:
return 0
else:
return 1
for i in range(1,10001) :
if pd(i)==1:
print(i)
第三题
l=[1,2,3,4,5,6,7,8]
def js(x):
sum=0
for i in range(len(x)):
if i%2==0:
sum += x[i]
return sum
print(f"偶数下标和为{js(l)}")
第四题
# 组合数的计算公式是: C(n, k) = n! / (k!(n-k)!)
def jc(x):
if x==1:
return 1
return x*jc(x-1)
# 图中是5行8列 所以是C(11, 4)
result = jc(11)/(jc(7)*jc((11-7)))
print(result)
汉诺塔问题
def my_print(start,end):
print(f"{start}->{end}")
def move(n,start,tmp,end):
# a,b,c
if n==1:
my_print(start,end)
# a->c
else:
move(n-1,start,end,tmp)
# 把n-1个盘挪到中转柱子上 传参a ,c,b move中 a->b
my_print(start,end)
# 把最后一个盘挪到目标柱子 上面是个递归是独立的,不影响这个函数的参数 a->c
move(n-1,tmp,start,end)
# 再把n-1个盘从中转柱 挪到 目标柱 传的参 是 b, a, c, 打印出来就是 b->c
n= int(input("几层盘"))
move(n,'a','b','c')
# a是初始柱 b是中转柱 c是目标柱