解题思路: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 人评分
简单的a+b (C语言代码)浏览:537 |
C语言程序设计教程(第三版)课后习题10.1 (Java代码)浏览:1436 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:373 |
大神老白 (C语言代码)浏览:640 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:817 |
1157题解浏览:711 |
C语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:466 |
用筛法求之N内的素数。 (C语言代码)浏览:529 |
永远的丰碑 (C语言代码)浏览:516 |
模拟计算器 (C语言代码)浏览:2297 |
bobby 2021-03-20 16:53:41 |
是的,就是数学的排列组合,我也找了好一会儿,但是如果找出来了,代码就很简单了