OJ题目思路整理以及具体实现

这篇博客主要介绍了如何解决两个算法问题:计算给定n值下C(2n,1),C(2n,3),C(2n,5),…,C(2n,2n-1)的最大公约数,以及输入一个整数N,输出所有拆分的方式。解题思路包括判断奇数因子和递归拆分整数。" 108428936,10063962,Vue CLI4 安装Vant UI组件库:CMD命令行实战,"['前端开发', 'Vue', 'UI组件库', 'Vant', 'npm']

1、计算一个数字二进制的个数

# If you need to import additional packages or classes, please import here.

def func():

    # please define the python3 input here. For example: a,b = map(int, input().strip().split())

    # please finish the function body here.

    # please define the python3 output here. For example: print().
   while True:
        try:
            n = int(input())
            if n < 0:
                n = n & 0xffffffff
            count = 0
            while n:
                n = n & (n-1)
                count += 1
            print(count)
        except EOFError:
            break 
if __name__ == "__main__":
  func()

2.最大公约数PLUS
从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个不同元素中取出m个元素的一个组合;从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数,用符号c(n,m)表示。
计算公式为:c(n,m)=n!/((n-m)!×m!)
现在你的任务是求出C(2n,1),C(2n,3),C(2n,5),…,C(2n,2n-1)的最大公约数。

解答要求
时间限制:5000ms, 内存限制:64MB
输入
输入只有一个整数n(1<n<=10000)。

输出
输出C(2n,1

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值