转载:https://blog.csdn.net/jaster_wisdom/article/details/52107785
#include<cstdio> #include<cstring> #include<iostream> using namespace std; string x; int in[1000]; int out[1000]; void tran_arry(){ for(int i=0;i<x.length();i++){ if(isalpha(x[i])) in[i]=x[i]-'A'+10; else in[i]=x[i]-'0'; } } void tran_any(int a,int b){ int sum=1; int d; int k=0; int len=x.length(); while(sum){ sum=0; for(int i=0;i<len;i++){ d=in[i]/b; sum+=d; if(i==len-1) out[k++]=in[i]%b; else in[i+1]+=(in[i]%b)*a; in[i]=d; } } if(k==0) out[k--]=0; if(k==-1) cout<<0<<endl; else { for(int i=0;i<k;i++){ if(out[k-i-1]>9) cout<<(char)(out[k-i-1]+'A'-10); else cout<<out[k-i-1]; } } cout<<endl; } int main(){ int a,b; while(1){ cin>>x; cin>>a>>b; tran_arry(); tran_any(a,b); } return 0; }
大数相加
#include <stdio.h> #include <string.h> #include<iostream> using namespace std; int a1[10001];//7654321 int a2[10001];//2345679 int a3[10001]; char aa1[10001]; int Max; void tan(){ int len; scanf("%s",aa1); Max=len=strlen(aa1); for(int i=len-1;i>=0;i--) a1[len-i-1]=aa1[i]-'0'; scanf("%s",aa1); len=strlen(aa1); Max=max(len,Max); for(int i=len-1;i>=0;i--) a2[len-i-1]=aa1[i]-'0'; } int main() { int i=0; memset(a1,0,sizeof(a1)); memset(a2,0,sizeof(a2)); memset(a3,0,sizeof(a3)); tan(); for(int i=0;i<Max;i++){ int t=(a1[i]+a2[i]+a3[i])%10; //从个位开始计算 a3[i+1]+=((a1[i]+a2[i]+a3[i])/10); a3[i]=t; } if(a3[Max]){ for ( int j=Max; j>=0; j-- ) printf("%d",a3[j]);printf("\n"); } else { for ( int j=Max-1; j>=0; j-- ) printf("%d",a3[j]);printf("\n"); } return 0; }
高精度n!
#include<cstdio> #include<string> #include<stdlib.h> #include <string.h> #include<iostream> using namespace std; const int maxn=10000; int f[maxn]; int main(){ int i,j,n; memset(f,0,sizeof(f)); f[0]=1; cin>>n; for( i=2;i<=n;i++){ int c=0; for( j=0;j<maxn;j++){ int t=f[j]*i+c; f[j]=t%10; c=t/10; } } for(j=maxn-1;j>=0;j--) if(f[j])break; for(i=j;i>=0;i--) printf("%d",f[i]); putchar(10); return 0; }
500
1220136825991110068701238785423046926253574342803192842192413588385845373153881997605496447502203281863013616477148203584163378722078177200480785205159329285477907571939330603772960859086270429174547882424912726344305670173270769461062802310452644218878789465754777149863494367781037644274033827365397471386477878495438489595537537990423241061271326984327745715546309977202781014561081188373709531016356324432987029563896628911658974769572087926928871281780070265174507768410719624390394322536422605234945850129918571501248706961568141625359056693423813008856249246891564126775654481886506593847951775360894005745238940335798476363944905313062323749066445048824665075946735862074637925184200459369692981022263971952597190945217823331756934581508552332820762820023402626907898342451712006207714640979456116127629145951237229913340169552363850942885592018727433795173014586357570828355780158735432768888680120399882384702151467605445407663535984174430480128938313896881639487469658817504506926365338175055478128640000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000