大数运算
发布时间:2020-12-14 01:27:14 所属栏目:大数据 来源:网络整理
导读://大数加法 hdu 1002(可练习hdu 1715,1753,2100)#include iostream#includecstdio#includecstringusing namespace std;const int N=1500;int a[N],b[N];char a1[N],b1[N];int main(){ int t,cas=1; cint; while(t--){ memset(a,sizeof(a));memset(b,sizeof(b
//大数加法 hdu 1002(可练习hdu 1715,1753,2100) #include <iostream> #include<cstdio> #include<cstring> using namespace std; const int N=1500; int a[N],b[N]; char a1[N],b1[N]; int main() { int t,cas=1; cin>>t; while(t--){ memset(a,sizeof(a));memset(b,sizeof(b)); cin>>a1>>b1; printf("Case %d:n%s + %s = ",cas++,a1,b1); int len1=strlen(a1),len2=strlen(b1); for(int j=0,i=len1-1;i>=0;i--) a[j++]=a1[i]-'0'; for(int j=0,i=len2-1;i>=0;i--) b[j++]=b1[i]-'0'; for(int i=0,j=0;i<len1||j<len2;i++,j++) { a[i]+=b[j]; if(a[i]>=10){a[i+1]+=1;} a[i]%=10; } int maxn=max(len1,len2); if(a[maxn]) cout<<a[maxn]; for(int i=maxn-1;i>=0;i--) cout<<a[i]; cout<<endl; if(t) cout<<endl; } return 0; } //阶乘,加法运算转乘法 hdu 1042 #include <iostream> #include<cstdio> #include<cstring> using namespace std; const int N=40000; int a[N]; int main() { int n; while(~scanf("%d",&n)) { memset(a,sizeof(a)); a[0]=1; for(int i=2;i<=n;i++) { int k=0; for(int j=0;j<N;j++) { a[j]=(a[j]*i+k); k=a[j]/10; a[j]%=10; } } int i; for(i=N;i>=0;i--) if(a[i]) break; for(;i>=0;i--) printf("%d",a[i]);printf("n"); } return 0; } //乘除结合 hdu 1133 (仅练习大数) #include<iostream> #include<cstdio> #include<cstring> using namespace std; //(m+n)! * (m-n+1) /(m+1) const int N=2005; int a[N]; int main(){ int n,m,ca=1; while(cin>>m>>n) { if(m==0&&n==0) break; printf("Test #%d:n",ca++); if(m<n) {cout<<0<<endl;continue;} int flag=1;if(n==0){flag=0;} memset(a,sizeof(a)); a[0]=1; for(int i=2;i<=m+n;i++) { int t=0; for(int j=0;j<N;j++) { a[j]=a[j]*i; if(i==m+n&&flag) a[j]*=(m-n+1); a[j]+=t; t=a[j]/10; a[j]%=10; } } int p=N-1; while(a[p]==0) p--; int t=0; if(flag) for(int i=p;i>=0;i--) { a[i]=10*t+a[i]; t=a[i]%(m+1); a[i]=a[i]/(m+1); } while(a[p]==0) p--; for(int i=p;i>=0;i--) cout<<a[i];cout<<endl; } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |