解题思路:1.首先确定长为w的2^k进制数的最大长度max1
2.通过题目中给的样例,找出位数n和n位数的个数的关系:n位数的个数=(2^k-n+1)*(2^k-n)/2
3.将2到max1位的2^k进制数求和
注意事项:
参考代码:
k,w=map(int,input().split()) total=0 max1=0 if w%k==0: max1=w//k else: max1=w//k+1 for n in range(2,max1+1): temp=(2**k-n+1)*(2**k-n)//2 total+=temp print(total)
0.0分
3 人评分
C二级辅导-同因查找 (C语言代码)浏览:467 |
C二级辅导-同因查找 (C++代码)(42的倍数,,所以直接递加42输出)浏览:1096 |
点我有惊喜!你懂得!浏览:2074 |
C语言训练-求PI* (C语言代码)浏览:897 |
简单的a+b (C语言代码)浏览:723 |
C语言程序设计教程(第三版)课后习题8.1 (Java代码)浏览:778 |
C语言训练-计算t=1+1/2+1/3+...+1/n (C语言代码)浏览:868 |
简单的a+b (C语言代码)浏览:525 |
C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:867 |
A+B for Input-Output Practice (III) (C语言代码)浏览:575 |
bobby 2021-03-20 16:53:41 |
是的,就是数学的排列组合,我也找了好一会儿,但是如果找出来了,代码就很简单了