为什么这个高精度有问题啊
查看原帖
为什么这个高精度有问题啊
940317
lightme楼主2024/1/10 13:09
#include<iostream>
#include<algorithm>
//#include<cstdio>
#include<cstring>
#define ll long long 
#define endl '\n'
#define rep(i,a,b) for(int i=(a);i<(b);i++)
#define per(i,a,b) for(int i=(a);i>(b);i--)
#define N 1000100 //1e6+100 
 
using namespace std;
string strn;
int k,x,y;
int num[40];
bool st[10][10];
bool pa[10][10];
int cnt[100];
int ans;
void dfs(int x){
	
	rep(i,0,10){
		if(st[x][i]&&!pa[x][i]){
			pa[x][i]=true;
			pa[i][x]=true;
			ans++;
			dfs(i);
		}
	}
}
void mul(int x){
	int tmp=0;
	rep(i,0,100){
		cnt[i]=cnt[i]*x+tmp;
		tmp=cnt[i]/10;
		cnt[i]%=10;
	}
}
int main(){
	//ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
	cin>>strn>>k;
	for(int i=0;i<strn.size();i++){
		num[i]=(char)strn[i]-'0';
	}
	// rep(i,0,10){
		// st[i][i]=true;
	// }
	rep(i,0,k){
		cin>>x>>y;
		st[x][y]=true;
	}
	cnt[0]=1;
	ll res=1;
	int len=strn.size();
	rep(i,0,len){
		memset(pa,0,sizeof pa);
		pa[i][i]=true;
		ans=1;
		dfs(num[i]);
		mul(ans);
		
	}
	int i=99;
	 while(i>=0&&!cnt[i]) i--;
	 for(;i>=0;i--) cout<<cnt[i];
	return 0; 
} 


我单单把mul函数拿出来测试是没啥问题的但是不知道为什么这个有问题

2024/1/10 13:09
加载中...