Leetcode:LCP22 黑白方格画 解题请教
输入3,8
错误输出 1
正确输出 9
看了代码觉得没有问题,为什么会出错?
class Solution {
public:
int paintingPlan(int n, int k) {
int num=0;
if(n * n == k) return 1;
if(n * n == 0) return 0;
for(int i=0;i<=n;i++){
for(int j=0;j<=n;j++){
if((i * n+j * n-i * j) == k){
int a=combination(n,i);
int b=combination(n,j);
num =a*b;
}
}
}
return num;
}
//组合函数C(m,n)的写法
int combination(int n, int m) {
int ans = 1;
for(int i=n; i>m; i--) ans *= i;
for(int i=m; i>0; i--) ans /= i;
return ans;
}
};