高精度程序(高-高/高-低,变量步骤尽可能的少的使用,初始化0的分析,压位)
Posted congmingyige
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高精度程序(高-高/高-低,变量步骤尽可能的少的使用,初始化0的分析,压位)相关的知识,希望对你有一定的参考价值。
下载地址:http://pan.baidu.com/s/1dEJPdAx
GJD_High_Plus_High
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 int main() 6 { 7 //认为x>y 8 long x[10000],y[10000],numx,numy,i; 9 char c[10000]; 10 scanf("%s",c); 11 numx=strlen(c); 12 for (i=0;i<numx;i++) 13 x[numx-i]=c[i]-48; 14 scanf("%s",c); 15 numy=strlen(c); 16 for (i=0;i<numy;i++) 17 y[numy-i]=c[i]-48; 18 19 x[numx+1]=0; 20 for (i=numy+1;i<=numx;i++) 21 y[i]=0; 22 for (i=1;i<=numx;i++) 23 { 24 x[i]+=y[i]; 25 if (x[i]>=10) 26 { 27 x[i+1]++; 28 x[i]-=10; 29 } 30 } 31 if (x[i]!=0) 32 numx++; 33 for (i=numx;i>=1;i--) 34 printf("%ld",x[i]); 35 printf("\\n"); 36 return 0; 37 }
High_Plus_High_YaWei
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 int main() 6 { 7 //认为x>y 8 long x[10000],y[10000],numx,numy,i,j; 9 char c[10000]; 10 scanf("%s",c); 11 numx=strlen(c); 12 j=numx-1; 13 numx/=4; 14 for (i=1;i<=numx;i++) 15 { 16 x[i]=c[j]-48+(c[j-1]-48)*10+(c[j-2]-48)*100+(c[j-3]-48)*1000; 17 j-=4; 18 } 19 if (j!=-1) 20 { 21 numx++; 22 i=1; 23 x[numx]=0; 24 while (j>=0) 25 { 26 x[numx]+=i*(c[j]-48); 27 i*=10; 28 j--; 29 } 30 } 31 32 scanf("%s",c); 33 numy=strlen(c); 34 j=numy-1; 35 numy/=4; 36 for (i=1;i<=numy;i++) 37 { 38 y[i]=c[j]-48+(c[j-1]-48)*10+(c[j-2]-48)*100+(c[j-3]-48)*1000; 39 j-=4; 40 } 41 if (j!=-1) 42 { 43 numy++; 44 i=1; 45 y[numy]=0; 46 while (j>=0) 47 { 48 y[numy]+=i*(c[j]-48); 49 i*=10; 50 j--; 51 } 52 } 53 54 x[numx+1]=0; 55 for (i=numy+1;i<=numx;i++) 56 y[i]=0; 57 for (i=1;i<=numx;i++) 58 { 59 x[i]+=y[i]; 60 if (x[i]>=10000) 61 { 62 x[i+1]++; 63 x[i]-=10000; 64 } 65 } 66 if (x[i]!=0) 67 numx++; 68 printf("%ld",x[numx]); 69 for (i=numx-1;i>=1;i--) 70 if (x[i]<10) 71 printf("000%ld",x[i]); 72 else if (x[i]<100) 73 printf("00%ld",x[i]); 74 else if (x[i]<1000) 75 printf("0%ld",x[i]); 76 else 77 printf("%ld",x[i]); 78 printf("\\n"); 79 return 0; 80 }
GJD_High_Plus_Low
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 int main() 6 { 7 //认为x>y 8 long x[10000],y,numx,i; 9 char c[10000]; 10 scanf("%s",c); 11 numx=strlen(c); 12 for (i=0;i<numx;i++) 13 x[numx-i]=c[i]-48; 14 scanf("%ld",&y); 15 16 //x>y,加法执行后x的位数最多多1位 17 x[numx+1]=0; 18 x[1]+=y; 19 i=1; 20 while (x[i]>=10) 21 { 22 x[i+1]+=x[i]/10; 23 x[i]=x[i]%10; 24 i++; 25 } 26 if (i>numx) 27 numx=i; 28 for (i=numx;i>=1;i--) 29 printf("%ld",x[i]); 30 printf("\\n"); 31 return 0; 32 }
GJD_High_Plus_Low_YaWei
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 int main() 6 { 7 //认为x>y 8 long x[10000],y,numx,i,j; 9 char c[10000]; 10 scanf("%s",c); 11 numx=strlen(c); 12 j=numx-1; 13 numx/=4; 14 for (i=1;i<=numx;i++) 15 { 16 x[i]=c[j]-48+(c[j-1]-48)*10+(c[j-2]-48)*100+(c[j-3]-48)*1000; 17 j-=4; 18 } 19 if (j!=-1) 20 { 21 numx++; 22 i=1; 23 x[numx]=0; 24 while (j>=0) 25 { 26 x[numx]+=i*(c[j]-48); 27 i*=10; 28 j--; 29 } 30 } 31 scanf("%ld",&y); 32 x[1]+=y; 33 i=1; 34 while (x[i]>=10000) 35 { 36 x[i+1]+=x[i]/10000; 37 x[i]=x[i]%10000; 38 i++; 39 } 40 if (i>numx) 41 numx=i; 42 printf("%ld",x[numx]); 43 for (i=numx-1;i>=1;i--) 44 if (x[i]<10) 45 printf("000%ld",x[i]); 46 else if (x[i]<100) 47 printf("00%ld",x[i]); 48 else if (x[i]<1000) 49 printf("0%ld",x[i]); 50 else 51 printf("%ld",x[i]); 52 printf("\\n"); 53 return 0; 54 }
///////////////////////////////
GJD_High_Minus_High
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 int main() 6 { 7 //认为x>y 8 long x[10000],y[10000],numx,numy,i; 9 char c[10000]; 10 scanf("%s",c); 11 numx=strlen(c); 12 for (i=0;i<numx;i++) 13 x[numx-i]=c[i]-48; 14 scanf("%s",c); 15 numy=strlen(c); 16 for (i=0;i<numy;i++) 17 y[numy-i]=c[i]-48; 18 19 for (i=numy+1;i<=numx;i++) 20 y[i]=0; 21 for (i=1;i<=numx;i++) 22 { 23 x[i]-=y[i]; 24 if (x[i]<0) 25 { 26 x[i+1]--; 27 x[i]+=10; 28 } 29 } 30 while (x[numx]==0 && numx!=1) 31 numx--; 32 for (i=numx;i>=1;i--) 33 printf("%ld",x[i]); 34 printf("\\n"); 35 return 0; 36 }
GJD_High_Minus_High_YaWei
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 int main() 6 { 7 //认为x>y 8 long x[10000],y[10000],numx,numy,i,j; 9 char c[10000]; 10 scanf("%s",c); 11 numx=strlen(c); 12 j=numx-1; 13 numx/=4; 14 for (i=1;i<=numx;i++) 15 { 16 x[i]=c[j]-48+(c[j-1]-48)*10+(c[j-2]-48)*100+(c[j-3]-48)*1000; 17 j-=4; 18 } 19 if (j!=-1) 20 { 21 numx++; 22 i=1; 23 x[numx]=0; 24 while (j>=0) 25 { 26 x[numx]+=i*(c[j]-48); 27 i*=10; 28 j--; 29 } 30 } 31 32 scanf("%s",c); 33 numy=strlen(c); 34 j=numy-1; 35 numy/=4; 36 for (i=1;i<=numy;i++) 37 { 38 y[i]=c[j]-48+(c[j-1]-48)*10+(c[j-2]-48)*100+(c[j-3]-48)*1000; 39 j-=4; 40 } 41 if (j!=-1) 42 { 43 numy++; 44 i=1; 45 y[numy]=0; 46 while (j>=0) 47 { 48 y[numy]+=i*(c[j]-48); 49 i*=10; 50 j--; 51 } 52 } 53 54 for (i=numy+1;i<=numx;i++) 55 y[i]=0; 56 for (i=1;i<=numx;i++) 57 { 58 x[i]-=y[i]; 59 if (x[i]<0) 60 { 61 x[i+1]--; 62 x[i]+=10000; 63 } 64 } 65 while (x[numx]==0 && numx!=1) 66 numx--; 67 printf("%ld",x[numx]); 68 for (i=numx-1;i>=1;i--) 69 if (x[i]<10) 70 printf("000%ld",x[i]); 71 else if (x[i]<100) 72 printf("00%ld",x[i]); 73 else if (x[i]<1000) 74 printf("0%ld",x[i]); 75 else 76 printf("%ld",x[i]); 77 printf("\\n"); 78 return 0; 79 }
GJD_High_Minus_Low
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 int main() 6 { 7 //认为x>y 8 long x[10000],y,numx,i; 9 char c[10000]; 10 scanf("%s",c); 11 numx=strlen(c); 12 for (i=0;i<numx;i++) 13 x[numx-i]=c[i]-48; 14 scanf("%ld",&y); 15 16 x[1]-=y; 17 i=1; 18 while (x[i]<0) 19 { 20 x[i+1]+=(x[i]-9)/10; 21 x[i]=x[i]%10; 22 if (x[i]!=0) 23 x[i]+=10; 24 i++; 25 } 26 while (x[numx]==0 && numx!=1) 27 numx--; 28 for (i=numx;i>=1;i--) 29 printf("%ld",x[i]); 30 printf("\\n"); 31 return 0; 32 }
GJD_High_Minus_Low_YaWei
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 int main() 6 { 7 //认为x>y 8 long x[10000],y,numx,i,j; 9 char c[10000]; 10 scanf("%s",c); 11 numx=strlen(c); 12 j=numx-1; 13 numx/=4; 14 for (i=1;i<=numx;i++) 15 { 16 x[i]=c[j]-48+(c[j-1]-48)*10+(c[j-2]-48)*100+(c[j-3]-48)*1000; 17 j-=4; 18 } 19 if (j!=-1) 20 { 21 numx++; 22 i=1; 23 x[numx]=0; 24 while (j>=0) 25 { 26 x[numx]+=i*(c[j]-48); 27 i*=10; 28 j--; tensorflow识别Mnist时,训练集与验证集精度acc高,但是测试集精度低的比较隐蔽的原因