求调
  • 板块学术版
  • 楼主BoyuZhang
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/11/24 13:07
  • 上次更新2023/11/24 17:36:05
查看原帖
求调
781722
BoyuZhang楼主2023/11/24 13:07

阶乘[19海淀区4月小学组T2]

题目背景

2019年海淀区青少年程序设计挑战活动小学组 T2

题目描述

n的阶乘定义为n! = n ∗ (n − 1) ∗ (n − 2) ∗ ... ∗ 1。

n的双阶乘定义为n!! = n ∗ (n − 2) ∗ (n − 4) ∗ ... ∗ 2或n!! = n ∗ (n − 2) ∗ (n − 4) ∗ ... ∗ 1,取决于n的奇偶性。

但是阶乘的增长速度太快了,所以我们现在只想知道n!和n!!末尾的0的个数。

输入格式

一个正整数n, n ≤ 10^7

输出格式

两个整数, 分别为n!和n!!末尾0的个数。

样例 #1

样例输入 #1

10

样例输出 #1

2 1

样例 #2

样例输入 #2

5

样例输出 #2

1 0

代码

#include<bits/stdc++.h>
using namespace std;
int n;
int one(int x){
	int ans=0;
	while(x>=5){
		ans+=x/5;
		x/=5;
	}
	return x;
}
int tow(int x){
	int ans=0;
	if(x%2==1){
		return 0;
	}
	else{
		x=x/2;
		while(x>=5){
			ans+=x/5;
			x/=5;
		}
	}
}
int main(){
	cin>>n;
	cout<<one(n)<<" "<<tow(n);
}
2023/11/24 13:07
加载中...