zoukankan      html  css  js  c++  java
  • HDU 1753 大明A+B

    题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1753

    小数的高精度运算

    思路 把小数点前后分开存,然后统一进位,输出时再输出小数点。

    View Code
      1 #include <stdio.h>
      2 #include <string.h>
      3 #define N 405
      4 int a[N];
      5 int b[N];
      6 int c[N];
      7 int a1[N];
      8 int b1[N];
      9 int c1[N];
     10 int d[N];
     11 char stra[1000];
     12 char strb[1000];
     13 int max2(int q,int p)
     14 {
     15     return q>p?q:p;
     16 }
     17 int main()
     18 {
     19     int i,j;
     20     while (scanf("%s %s",stra,strb)!=EOF)
     21     {
     22         int alen = strlen (stra);
     23         int flaga=0,flagb=0;
     24         for (i=0;i<alen;i++)
     25         {
     26             if (stra[i] == '.')
     27             {
     28                 flaga = i;
     29                 break;
     30             }
     31         }
     32         if (i == alen)
     33         {
     34             flaga = alen;
     35         }
     36         int aplen ;
     37         int blen = strlen(strb);
     38         for (i=0;i<blen;i++)
     39         {
     40             if (strb[i] == '.')
     41             {
     42                 flagb = i;
     43                 break;
     44             }
     45         }
     46         if (i == blen)
     47         {
     48             flagb = blen;
     49         }
     50         int bplen ;
     51         memset (a,0,sizeof(a));
     52         memset (b,0,sizeof(b));
     53         memset (c,0,sizeof(c));
     54         memset (a1,0,sizeof(a1));
     55         memset (b1,0,sizeof(b1));
     56         memset (c1,0,sizeof(c1));
     57         j=0;
     58         for (i=flaga-1;i>=0;i--)
     59         {
     60             a[j] = stra[i]-'0';
     61             j++;
     62         }
     63         int aclen = j--;
     64         j=0;
     65         for (i=flagb-1;i>=0;i--)
     66         {
     67             b[j] = strb[i]-'0';
     68             j++;
     69         }
     70         int bclen = j--;
     71         j=1;
     72         for (i=flaga+1;i<alen;i++)
     73         {
     74             a1[j] = stra[i]-'0';
     75             j++;
     76         }
     77         aplen = j--;
     78         j=1;
     79         for (i=flagb+1;i<blen;i++)
     80         {
     81             b1[j] = strb[i]-'0';
     82             j++;
     83         }
     84         bplen = j--;
     85         int maxplen = max2(aplen,bplen);
     86         for (i=maxplen;i>=1;i--)
     87         {
     88             c1[i-1] = (a1[i]+b1[i]+c1[i])/10;
     89             c1[i] = (a1[i]+b1[i]+c1[i])%10;
     90 
     91         }
     92         int maxclen = max2(aclen,bclen);
     93         for (i=0;i<maxclen;i++)
     94         {
     95             c[i+1] = (a[i]+b[i]+c[i])/10;
     96             c[i] = (a[i]+b[i]+c[i])%10;
     97         }
     98         if (c1[0])
     99         {
    100             memset(d,0,sizeof(d));
    101             d[0] = 1;
    102             for (i=0;i<maxclen;i++)
    103             {
    104                 c[i+1] += (c[i]+d[i])/10;
    105                 c[i] = (c[i]+d[i])%10;
    106             }
    107         }
    108         int flag = 0;
    109         for (i=maxclen+1;i>=0;i--)
    110         {
    111             if(c[i]!=0)
    112                 flag = 1;
    113             if(flag)
    114                 printf("%d",c[i]);
    115         }
    116         if(flag == 0)
    117             printf("0");
    118         flag = 0;
    119         for (i=1;i<=maxplen;i++)
    120         {
    121             if(c1[i]!=0)
    122                 flag = i;
    123         }
    124         if(flag)
    125         {
    126             printf(".");
    127             for (i=1;i<=flag;i++)
    128                 printf("%d",c1[i]);
    129         }
    130         printf("\n");
    131     }
    132     return 0;
    133 }
  • 相关阅读:
    Spring框架中的单例bean是线程安全的吗?
    Spring Cloud 解决了哪些问题?
    服务端处理 Watcher 实现 ?
    内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?
    vue-router点击同一个页面异常处理
    mybatis代码生成+自定义注解+自定义注释
    lombok使用
    idea格式化设置
    寒假每周总结4
    寒假每日日报27
  • 原文地址:https://www.cnblogs.com/timeship/p/2622141.html
Copyright © 2011-2022 走看看