long double过不了,求助
查看原帖
long double过不了,求助
61864
Pursuer017楼主2021/2/8 12:24

如题。
打出来表,最大数也就130位左右,没有任何溢出,为何只有20pts?

#include<cmath>
#include<cstdio>
#include<cctype>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>

#define rint register int
#define I inline

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;

template<class T> inline void read(T &x){
	x=0;char c=getchar();int f=1;
	while(!isdigit(c)){if(c=='-')f=-1;c=getchar();}
	while(isdigit(c)){x=x*10+c-'0';c=getchar();} x*=f;
}

const int N=110;

int n,m;
ld S[N][N];

int main(){
	//freopen("stirlin_2.out","w",stdout);
	S[0][0]=1;
	for(int i=1;i<N;i++)
		for(int j=1;j<=i;j++)
			S[i][j]=S[i-1][j]*j+S[i-1][j-1];
	
//	for(rint i=1;i<N;i++)
//		for(rint j=1;j<N;j++)
//			printf("S[%d][%d]:%.0Lf\n",i,j,S[i][j]);
	
	while(scanf("%d%d",&n,&m)!=EOF) 
		printf("%.0Lf\n",S[n][m]);
		
	return 0;
}
2021/2/8 12:24
加载中...