高精度的加法知识
#include#include //大数相加 int main() { char arr[100]; char str[100]; scanf("%s %s",&arr,&str); int jinwei=0; int a[100]={0}; int b[100]={0}; int c[100]={0}; int len1=strlen(arr); int len2=strlen(str); int max=len1>len2?len1:len2; for(int i=0;i =0;i--){ printf("%d",c[i]); //看看最高位有没有溢出,如果有,再补一位 } } else{ for(int j=max-1;j>=0;j--){ printf("%d",c[j]); } } return 0; }
再配一道高精度的例题
高精度下的斐波那契数列
#includeint a[10000],b[10000],c[10000]; int main() { int n; int x=1; scanf("%d",&n); //用来输入第几个数 a[1]=1;b[1]=2; for(int h=3;h<=n;h++){ for(int i=1;i<=x;i++){ c[i]=a[i]+b[i]; } for(int j=1;j<=x;j++){ if(c[j]>9){ c[j+1]+=c[j]/10; c[j]%=10; if(j+1>x){ x++; } } } for(int k=1;k<=x;k++){ a[k]=b[k]; //这里是用了递推的思想 } for(int k=1;k<=x;k++){ b[k]=c[k]; } } for(int i=x;i>=1;i--){ printf("%d",b[i]); } }



