高精度程序(高-高/高-低,变量步骤尽可能的少的使用,初始化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高,但是测试集精度低的比较隐蔽的原因

reedlau高精度 高分辨率 计时函数 Linux

reedlau高精度 高分辨率 计时函数 Linux

低耦合高聚合,封装原则

后端开发术语大全

各种变量在内存中的高地址低地址