求助,7个点re,3个点wa
查看原帖
求助,7个点re,3个点wa
745088
F_oR_es_T楼主2022/7/28 09:52

代码如下```

头文件没全用上,就是习惯都写上

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <sstream>
using namespace std;
#define endl "\n"
int charToInt(char c){
	int k=c-'0';
	return k;
}
char intToChar(int k){
	char c=k+'0';
	return c;
}
int cc[1001];
string product(string s1,string s2){
	int m=s1.size(),n=s2.length();
	memset(cc,0,sizeof(cc));
	for(int j=n-1;j>=0;j--){
		for(int i=m-1;i>=0;i--){
			int a=charToInt(s1[i]);
			int b=charToInt(s2[j]);
			int temp=a*b;
			temp+=cc[i+j+1];
			cc[i+j+1]=temp%10;
			cc[i+j]+=temp/10;
		}
	}
	stringstream ss;
	for(int i=0;i<m+n;i++){
		if(ss.str().size()==0&&cc[i]==0){
			continue;
		}else{
			ss<<cc[i];
		}
	}
	return ss.str().size()==0?"0":ss.str();
}
string intToStr(int k){
	stringstream ss;
	ss<<k;
	return ss.str();
}
string fac(int n){
	if(n==1){
		return "1";
	}else{
		string facNjian1=fac(n-1);
		string nn=intToStr(n);
		return product(nn,facNjian1);
	}
}
int main(){
	int a,m;
	cin>>a;
	char n;
	int g[100]={};
	int s=0;
	for(int i=0;i<a;i++){
		cin>>m>>n;
		string z=fac(m);
		int w=z.length();
		int sum=0;
		for(int j=0;j<w;j++){
			if(z[j]==n){
			sum++;
			}
		}
		g[s]=sum;
		s++;
	}
	for(int i=0;i<a;i++){
		cout<<g[i]<<endl;
	}
	return 0;
}
2022/7/28 09:52
加载中...