题解 | #排列与二进制#

排列与二进制

https://www.nowcoder.com/practice/647fc23dc4e147328cc484e3aeb6cc2a

//C语言版代码
#include <stdio.h>
int main() {
    int n, m;
    while (scanf("%d%d", &n, &m) != EOF) {
        if (n == 0 && m == 0) break;
        int ans = 0;
        while (m--) {
            int temp = n;
            while (temp && temp % 2 == 0) {
                temp /= 2;
                ans++;
            }
            --n;
        }
        printf("%d\n", ans);
    }
    return 0;
}
//Python版代码
from math import perm
while True:
    try:
        n, m = map(int, input().split())
        if n==m==0:break
        s = bin(perm(n, m))
        print(len(s) - len(s.rstrip('0')))
    except:
        break

全部评论

相关推荐

永不遗忘:才这么点算什么拉黑,我初筛连着挂几十次了,最后还是能进面
点赞 评论 收藏
分享
04-10 11:56
如皋中学 Java
高斯林的信徒:双c9能简历挂的?
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务