zoukankan      html  css  js  c++  java
  • HDU 1047 多个大数相加 Integer Inquiry

     

    题目:求多个大数的和

    把两个大数的求和写成函数,每次输入都用一次,解决!

    直接上代码

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 using namespace std;
     5 char sa[1000],sb[1000];
     6 int a[1000],b[1000],c[1000];
     7 void add(char sa[1000],char sb[1000]){
     8         int lena=strlen(sa);
     9         int lenb=strlen(sb);
    10         int lenc=(lena>lenb?lena:lenb);
    11         memset(a,0,sizeof(a));
    12         memset(b,0,sizeof(b));
    13 
    14         for(int j=0;j<lena;j++){
    15             a[lena-1-j]=sa[j]-'0';
    16         }
    17         for(int j=0;j<lenb;j++){
    18             b[lenb-1-j]=sb[j]-'0';
    19         }
    20         memset(c,0,sizeof(c));
    21         for (int ii=0; ii<lenc; ii++) {
    22             c[ii]=a[ii]+b[ii]+c[ii];
    23             if (c[ii]>=10) {
    24                 c[ii+1]=1;
    25                 c[ii]-=10;
    26             }
    27         }
    28         if (c[lenc]>0) lenc++;
    29 
    30         for (int ii=lenc-1; ii>=0; ii--){
    31             sb[ii]=c[lenc-1-ii]+'0';
    32         }
    33         sb[lenc]='';
    34 
    35 }
    36 int main() {
    37     int n;
    38     scanf("%d",&n);
    39     while(n--) {
    40         41         strcpy(sb,"0");
    42         while(scanf("%s",sa),strcmp(sa,"0")) {
    43             44             add(sa,sb);
    45         }
    46         puts(sb);
    47         //putchar('
    ');
    48 
    49         if(n)
    50             putchar('
    ');
    51     }
    52     return 0;
    53 }
    ---------------- 人们生成的最美好的岁月其实就是最痛苦的时候,只是事后回忆起来的时候才那么幸福。
  • 相关阅读:
    MySQL-存储过程
    MySQL-触发器
    MySQL自学笔记
    arrayList和LinkedList区别
    RecyclerView和ListView比较
    【二叉树遍历】必知方式
    进程与线程的区别
    【单例模式】java实现
    【斐波那契数列】java探究
    replugin插件化,插件转场动画失效的问题解决
  • 原文地址:https://www.cnblogs.com/livelihao/p/5155483.html
Copyright © 2011-2022 走看看