【无标题】

本文提供了一系列编程问题,包括计算十进制数二进制表示中1和0的个数、实现用户管理系统、求1到100间非3的倍数之和、找到1到N间所有质数的总和、利用公式计算PI值、对列表进行排序、数字串求和、合并有序数组、重排数组、查找数组中重复的数、筛选特定条件的数以及解决棋盘路径问题。这些问题覆盖了基础算法和数据结构的应用。
摘要由CSDN通过智能技术生成

1.求一个十进制的数值的二进制的0.1个数

num_input=int(input())
num_0=0;num_1=0
for i in bin(num_input)[2:]:
    if i=="1":num_1+=1
    else:num_0+=0
print(f"二进制中1的个数为{num_1}\n0的个数为{num_0}")

 

2.实现一个用户管理系统

3.求1~100之间不能被3整除的数之和

num_sum=0
for i in range(1,101):
if i%3!=0:num_sum+=i
print(num_sum)

4.给定一个正整数N,找出1到N(含)之间所有质数的总和
N=int(input())
num_sum=0
for i in range(1,N+1):
    for j in range(2,i):
        if i%j==0:break
        else:pass
    else:
        num_sum+=i
print(num_sum)
5.
计算PI(公式如下:PI=4(1-1/3+1/5-1/7+1/9-1.......)

6.给定一个10个元素的列表,请完成排序(注意,不要使用系统api)
my_list=[4,5,6,1,4,2,3,5,8]
i=1
while i<len(my_list):
    j = i
    while j>0:
        if my_list[j-1]>my_list[j]:
            temp=my_list[j]
            my_list[j]=my_list[j-1]
            my_list[j-1]=temp
        j-=1
    i+=1
print(my_list)
7.求  a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。
a=int(input());num=int(input())
num_b=0
num_sum=0
for i in range(0,num):
    num_b+=a*(10**i)
    num_sum+=num_b
print(num_sum)
8.,合并两个有序数组,合并后还是有序列表
my_list1=[1,2,5,6,7,10]
my_list2=[3,4,8,9,12]
my_list3=[]
i=0;j=0
while i<len(my_list1) and j<len(my_list2):
    if my_list1[i]<my_list2[j]:
        my_list3.append(my_list1[i])
        i+=1;
    else:
        my_list3.append(my_list2[j])
        j+=1
while i<len(my_list1):
    my_list3.extend(my_list1[i:len(my_list1)])
    i+=1
while j<len(my_list2):
    my_list3.extend(my_list2[j:len(my_list2)])
    j+=1
print(my_list3)

9.给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前
my_list=[12,5,3,15,6,56,34,78,95]
i=0
while i<len(my_list):
    if my_list[i]%2!=0:
        temp=my_list[i]
        my_list.pop(i)
        my_list.insert(0,temp)
    else:
        pass
    i+=1
print(my_list)
 

10.给定一个包含n+1个整数的数组nums,其数字在1到n之间(包含1和n),
    可知至少存在一个重复的整数,假设只有一个重复的整数,请找出这个重复的数
n=int(input())
my_list=[i for i in range(1,n+1)];my_list.append(random.randint(1,n))
my_dict={}
for i in my_list:
    if my_dict.get(i)==None:
        my_dict[i]=1
    else:
        print(i);break
 

11.找出10000以内能被5或6整除,但不能被两者同时整除的数(函数)
def fun():
    for i in range(5,10001):
        if (i%5==0 and i%6!=0) or (i%5!=0 and i%6==0):
            print(i)
 
fun()
 

12.写一个方法,计算列表所有偶数下标元素的和(注意返回值)
def fun(my_list:list):
    num=0
    for i in range(0,len(my_list),2):
        num+=i
    return num
print(fun([1,2,3,4,5,6,7,8,9,0]))
 

13.某个人进入如下一个棋盘中,要求从左上角开始走,
    最后从右下角出来(要求只能前进,不能后退),
    问题:共有多少种走法?
    
    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
my_list=[]
 
for i in range(0,5):
    my_list.append([])
    for j in range(0, 8):
        my_list[i].append(0)
        if i==0 and j!=0:
            my_list[i][j]=my_list[i][j-1]+1
        elif i!=0 and j==0:
            my_list[i][j]=my_list[i-1][j]+1
        elif i!=0 and j!=0:
            my_list[i][j]=my_list[i-1][j]+my_list[i][j-1]
print(f"{my_list[len(my_list)-1][len(my_list[0])-1]}")
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值