2020年1月12日 找回信心题
在寒假休闲了几天后决定重新开始,于是从一些很简单的水题开始找回信心,寒假加油!!
林大OJ 103 军训
题目思路很简单,就是计算n的阶乘。但本题的关键是他防止溢出的方法:结果对int的取模。这里可以理解为对int所能表示的最大的数:2的32次方减1取模,直接取模输出即可AC。
#include <bits/stdc++.h>
using namespace std;
const int N=pow(2,31)-1;
long long f(int n){
int i;
long long ans=1;
for(i=1;i<=n;i++){
ans=ans*i;
}
return ans;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF){
cout<<(int)f(n)%N<<endl;
}
return 0;
}
林大OJ 108 组合–亢龙无悔
直接考查排列组合公式的应用。中了函数毒的我直接把阶乘和组合都写成了函数。。。。
#include <iostream>
using namespace std;
int f(int n){
int i;
int ans=1;
for(i=1;i<=n;i++){
ans=ans*i;
}
return ans;
}
int combine(int n,int m){
int ans;
ans=f(n)/(f(m)*f(n-m));
return ans;
}
int main()
{
int n,m;
while(cin>>n>>m){
if(m==0) cout<<"1"<<endl;
else
cout<<combine(n,m)<<endl;
}
return 0;
}
今天做了OJ 101-108,剩下的题没有什么必要传了,过于简单。。