第1题 尾部0的个数
计算N!的尾部有多少个零?
输入格式
一行1个正整数N,范围[1,10000]。
输出格式
一个整数。
输入/输出例子1
输入:
10
输出:
2
样例解释
无
#include<bits/stdc++.h>
using namespace std;
int n,w2,w5,t;
int main(){
cin>>n;
for(int i=1;i<=n;i++)
{
t=i;
while(i%2==0)
{
i/=2;
w2++;
}
while(i%5==0)
{
i/=5;
w5++;
}
i=t;
}
cout<<min(w2,w5);
return 0;
}
第2题 水果篮
你想送给Mollie大婶一篮水果。在你的冰箱里有A个橘子和M个苹果。唯一的要求是篮子内必须至少有一个水果(即不容许水果篮是空的)。有多少种不同的水果篮?
输入格式
一行2个正整数A和B,范围[1,100]。
输出格式
一个整数。
输入/输出例子1
输入:
6 4
输出:
34
样例解释
无
#include<bits/stdc++.h>
using namespace std;
int A,M;
int main(){
cin>>A>>M;
cout<<(A+1)*(M+1)-1;
return 0;
}
第3题 因子个数
N有5个不同的质素因子:2、3、5、7、11,它们的个数分别为:a、b、c、d、e。
即N =
编程求可以除尽n的正整数个数,(即求有多少个x,是满足n%x等于0)。
输入格式
一行5个整数a、b、c、d、e。范围[0,20]。
输出格式
一个整数。
输入/输出例子1
输入:
6 9 1 5 2
输出:
2520
样例解释
无
#include<bits/stdc++.h>
using namespace std;
int a,b,c,d,e;
int main(){
cin>>a>>b>>c>>d>>e;
cout<<(a+1)*(b+1)*(c+1)*(d+1)*(e+1);
return 0;
}
第4题 三角形个数
有一个包含 N 个元素的数组 L[1..N]。 选择数组的 3 个不同下标: i,j,k, 满足 i<j<k, 就构成下标对(i,j,k)。
如果下标对( i,j,k) 满足以下所有条件, 那么该下标对就是“ 优质对” :
1、 令 A = L[i] + L[j]
2、 令 B = L[j] + L[k]
3、 令 C = L[k] + L[i]
4、 如果 A、 B、 C 都是非负数, 而且以 A、 B、 C 作为三条边, 能构成三角形。
你的任务是: 给出 L 数组[1..N], 可以有多少个不同的“ 优质对” ?
输入格式
第一行, 一个整数 N。 1 <= N <= 200000。
接下来有 N 行, 第 i 行是一个整数 L[i]。 -1000000000<=L[i]<=1000000000
输出格式
一个整数。
输入/输出例子1
输入:
3
-2 -3 -5
输出:
0
输入/输出例子2
输入:
4
1 4 6 -45
输出:
1
样例解释
无
#include <bits/stdc++.h>
using namespace std;
int n,x;
long long ans;
int main()
{
cin>>n;
for (int i=0;i<n;i++)
{
cin>>x;
if(x>0)ans++;
}
cout<<ans*(ans-1)*(ans-2)/6;
return 0;
}