社区讨论

help

P1591阶乘数码参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@lqpapkjh
此快照首次捕获于
2023/12/28 22:23
2 年前
此快照最后确认于
2023/12/29 14:54
2 年前
查看原帖
CPP
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int c[4005005];
int o[4005005];
int main(){
	ios::sync_with_stdio(0);
	//freopen("xxx.in", "r", stdin);
	//freopen("xxx.out", "w", stdout);
	int q;
	cin>>q;
	while(q--){
		memset(c,0,sizeof(c));
		int n,t;
		ll ans=0;
		cin>>n>>t;
		c[1]=1;
		int m=1,k=1;
		for(int i=2;i<=n;i++){
			int x=0;
			for(int j=1;j<=k;j++){
				c[j]*=i;
				c[j]+=x;
				x=0;
				if(c[j]>9){
					if(j==k){
						m++;
					}
					x=c[j]/10;
					c[j]%=10;
				}
			}
			if(x>0){
                c[m]=x;
                x=0;
            }
			k=m;
			if(c[m]>9){
				m++;
				c[m+1]=c[m]/10;
				c[m]%=10;
			}
			/*for(int i=m;i>=1;i--){
				cout<<c[i];
			}
			cout<<endl;*/
			
		}
		while(c[m]==0&&m!=1){
			m--;
		}
		for(int i=m;i>=1;i--){
			cout<<c[i];
		}
		cout<<endl;
		for(int i=m;i>=1;i--){
			if(c[i]==t){
				ans++;
				//cout<<c[i]<<" "<<i;
			}
		}
		cout<<ans<<endl;	
	}
	return 0;
}

回复

1 条回复,欢迎继续交流。

正在加载回复...