1.高精度乘法:
例题:(蓝桥杯基础练习)
代码实现:
#include<bits/stdc++.h> using namespace std; const int maxx=3000; int n,s,res=0; int a[maxx]={0}; int main(){ scanf("%d",&n); a[0]=1; for(int i=2;i<=n;i++) for(int j=0;j<=maxx;j++){ s=i*a[j]+res; a[j]=s%10; res=s/10; } for(int i=maxx;i>=0;i--) if(a[i]){ res=i; break; } for(int i=res;i>=0;i--) printf("%d",a[i]); }
2.高精度加法:
例题:蓝桥杯基础练习
代码实现:
#include <bits/stdc++.h> using namespace std; string a,b; int main() { cin>>a>>b; int ans[205]={0}; int c=0,s=0; int i=a.size()-1,j=b.size()-1,k=0; while(i>=0&&j>=0){ s=(a[i--]-'0')+(b[j--]-'0')+c; ans[k++]=s%10; c=s/10; } while(i>=0){ s=(a[i--]-'0')+c; ans[k++]=s%10; c=s/10; } while(j>=0){ s=(b[j--]-'0')+c; ans[k++]=s%10; c=s/10; } if(c)ans[k]+=c; else k--; for(i=k;i>=0;i--) printf("%d",ans[i]); }