wikioi 提高组高精度

来源:互联网 发布:mysql 嵌套select语句 编辑:程序博客网 时间:2024/05/22 14:53

很简单的试商。

#include<stdio.h>#include<iostream>#include<string.h>using namespace std;const int MAX_N = 1001;const int MAX_M = 501;const int INF = 10;char a[MAX_N],b[MAX_N];int c[MAX_N],d[MAX_N],t[MAX_N],f[MAX_N];int z[MAX_N];int lengtha,lengthb;int jia(){int i;for (i=1;i<=max(lengtha,lengthb);i++)f[i]+=c[i]+d[i],f[i+1]+=f[i]/INF,f[i]%=INF;}bool bigger(){if (lengtha>lengthb) return true;if (lengtha<lengthb) return false;int i;for (i=lengtha;i>=1;i--){if (c[i]>d[i]) return true;if (c[i]<d[i]) return false;}return true;}int jian(){int i;if (bigger())for (i=1;i<=max(lengtha,lengthb);i++){f[i]+=c[i]-d[i];if (f[i]<0) f[i]+=10,f[i+1]--;}else{printf("-");for (i=1;i<=max(lengtha,lengthb);i++){f[i]+=d[i]-c[i];if (f[i]<0) f[i]+=10,f[i+1]--;}}}int cheng(){int i,j;for (i=1;i<=lengtha;i++)for (j=1;j<=lengthb;j++)f[i+j-1]+=c[i]*d[j],f[i+j]+=f[i+j-1]/INF,f[i+j-1]%=INF;}int jiajiancheng(){int i;cin>>a>>b;lengtha=strlen(a);lengthb=strlen(b);for (i=0;i<lengtha;i++)c[lengtha-i]=a[i]-'0';for (i=0;i<lengthb;i++)d[lengthb-i]=b[i]-'0';//jia();//jian();//cheng();i=MAX_N-1;while (!f[i]) i--;    if (i<=0) printf("0");for (;i>=1;i--)printf("%d",f[i]);}//加减乘 bool gsort_cheng(int v){memset(t,0,sizeof(t));int i,j;for (i=1;i<MAX_N;i++)t[i]=z[i];for (i=v+1;i<MAX_N;i++)t[i+v-1]+=f[i]*f[v]*2;t[v+v-1]+=f[v]*f[v];for (i=1;i<MAX_N;i++)t[i+1]+=t[i]/INF,t[i]%=INF;        for (i=MAX_N-1;i>=1;i--){if (t[i]>c[i]) return false;if (t[i]<c[i]) return true;}return true;}int gsort(){int i,j,k;for (i=MAX_M-1;i>=1;i--){for (j=INF-1;j>=0;j--){f[i]=j;            if (gsort_cheng(i)) {for (k=1;k<MAX_N;k++)z[k]=t[k];j=-1;}}}}int gaojingdukaigeng(){int i;    cin>>a;lengtha=strlen(a);for (i=0;i<lengtha;i++)c[lengtha-i]=a[i]-'0';gsort();i=MAX_N-1;while (!f[i]) i--;    if (i<=0) printf("0");for (;i>=1;i--)printf("%d",f[i]);}//开根bool gsort_chu(int v){memset(t,0,sizeof(t));int i,j;for (i=1;i<MAX_M;i++)t[i]=z[i];for (i=1;i<MAX_M;i++)t[v+i-1]+=f[v]*d[i];for (i=1;i<MAX_N;i++)t[i+1]+=t[i]/INF,t[i]%=INF;        for (i=MAX_N-1;i>=1;i--){if (t[i]>c[i]) return false;if (t[i]<c[i]) return true;}return true;}int gchu(){int i,j,k;for (i=MAX_M-1;i>=1;i--){for (j=INF-1;j>=0;j--){f[i]=j;            if (gsort_chu(i)) {for (k=1;k<MAX_M;k++)z[k]=t[k];j=-1;}}}}int chu(){int i;cin>>a>>b;lengtha=strlen(a);lengthb=strlen(b);for (i=0;i<lengtha;i++)c[lengtha-i]=a[i]-'0';for (i=0;i<lengthb;i++)d[lengthb-i]=b[i]-'0';gchu();i=MAX_N-1;while (!f[i]) i--;    if (i<=0) printf("0");for (;i>=1;i--)printf("%d",f[i]);} int main(){//jiajiancheng();        //gaojingdukaigeng();        chu();return 0;}


 

原创粉丝点击