• 高精度加法


     1 #include <stdio.h>
     2 #include <string.h>
     3 #define MAX 200                                                   //大数最长位数
     4 int main()
     5 {
     6     char str1[MAX];
     7     char str2[MAX];
     8     char ans[MAX+MAX+1];                                                //用char型节省空间
     9     int len1,len2,bit,i,flag;
    10     memset(ans,0,sizeof(ans));
    11     printf("Please input a big number:");
    12     scanf("%s",str1);
    13     printf("Please input another big number:");
    14     scanf("%s",str2);
    15     len1=strlen(str1)-1;
    16     len2=strlen(str2)-1;
    17     bit=0;
    18     while(len1 >= 0 && len2 >= 0)                                //相同位数相加
    19         ans[bit++]=str1[len1--]-'0'+str2[len2--]-'0';
    20     while(len1 >= 0)                                            //str1多出的位放在结果里面
    21         ans[bit++]=str1[len1--]-'0';
    22     while(len2 >= 0)                                            //str2多出的位放在结果里面
    23         ans[bit++]=str2[len2--]-'0';
    24     //deal jinwei
    25     len1=strlen(str1);
    26     len2=strlen(str2);
    27     for(i=0;i<(len1>len2?len1:len2)+1;i++)                        //处理进位,结果最长不会超过最长的数字位数+1
    28         if(ans[i]>=10)
    29         {
    30             ans[i+1]+=ans[i]/10;
    31             ans[i]%=10;
    32         }
    33     //print
    34         printf("%s + %s = ",str1,str2);
    35     if(str1[0]=str2[0]==48)                                        //处理 0+0=0
    36     {
    37         printf("0 
    ");
    38         return 0;
    39     }
    40     flag=0;
    41     for(bit=len1+len2-1;bit>=0;bit--)                            //倒找第一位,即第一个非 
    42     {
    43         if(ans[bit] != '') flag=1;
    44         if(flag) printf("%d",ans[bit]);
    45     }
    46     putchar('
    ');
    47     return 0;
    48 }
    49 
    50  
  • 相关阅读:
    在服务器上搭建java环境
    往Android studio中导入类库文件
    Android异步任务AsyncTask
    搭建java环境
    使用安卓实现一个二维码扫描功能(基于Android Studio)
    Android中的runOnUiThread
    网络基础
    Android使用URL访问网络资源
    21天学通VC++
    cometd(转)
  • 原文地址:https://www.cnblogs.com/TianyuSu/p/6253229.html
Copyright © 2020-2023  润新知