第16行代码一定会导致原本结果中的小数被抹掉。( )
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll C1[35][35];
void init(){
for(int i = 0; i <= 34; i++){
C1[i][0] = 1;
for (int j = 1; j <= i; j++){
C1[i][j] = C1[i - 1][j] + C1[i - 1][j - 1];
}
}
}
ll CC(ll n, ll m){
ll ans = 1;
for (ll i = n; i > n - m; i--)ans = ans * i;
for (ll i = m; i >= 1; i--)ans = ans / i;
return ans;
}
int main(){
init();
ll n, m;scanf("%lld%lld", &n, &m);
printf("%lld %lld", C1[n][m], CC(n, m));
return 0;
}
正确
错误