解题思路:组合数
注意事项:
参考代码:
#include<iostream> #include<cmath> using namespace std; long long c(int n, int m){ double s = 1; for (int i = n ; i > n - m; i --)s *= i; for (int i = m; i >= 2; i --) s /= i; return (long long)s; } int main() { int k, w, mx, r, high, sum = 0; cin >> k >> w; mx = pow(2,k); r = w % k; high = pow(2,r) - 1; for (int i = 2; i < w / k + 1; i ++) sum += c(mx - 1, i); if (high){ for(int i = 1; i <= high; i ++){ sum += c(mx - i - 1, w / k); } } cout << sum; return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题3.7 (C++代码)浏览:1024 |
C语言程序设计教程(第三版)课后习题7.5 (C语言代码)浏览:670 |
C语言程序设计教程(第三版)课后习题5.8 (C语言代码)浏览:806 |
九宫重排 (C++代码)浏览:1410 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:436 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:566 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:632 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:1261 |
三角形 (C++代码)记忆化搜索浏览:1317 |
Minesweeper (C语言描述,蓝桥杯)浏览:1176 |