zoukankan      html  css  js  c++  java
  • 大数相加_原创

    所谓的大数就是用整形存不下的数;

    EG : 123466789123456789

    由于数组能够进行逐操作;

    所以考虑到用数组来逐一存放这个大数的每一位元素;

    这时候问题来了;

    1 怎么解决该数的输入以及将其存放到数组里面;

    2 如何解决进位;

    3 万一第一位是0如何解决;

    C语言有一种输入方法为%s;

    也就是所谓的字符串输入;

    与%c不同的是%s可以以空格为结束标识符;

    那么现在我们用一个字符型数组  ch[] 来输入该数;

    现在

    ch[1]='1';

    ch[2]='2';

    目前的元素都为字符型;

    现在要将其转化为整形来对其操作;

    同样用整形数组 a[]; b[]; 来存储;

    1='1'-'0';

    为了方便操作;

    我将其倒叙存放;

    目前;

    a[1]=9; a[2]=8;

    数据的存放便解决了;

    先比较这两个数组的长度;

    取最大记为L;

    用一个整形数组来存储ans;

    现在来解决进位;

    for(int i=0;i<L;i++)

    {

      c[i]=a[i]+b[i];      //记录每个位的答案;

         if(c[i]>=10)         //需要进位;

      {

        c[i++]++;    //向前一位进1;

        c[i]-=10;

      }

    }

    最后还有最后一点那就数判0;

    声明:c[0]存储个位;

    if(c[L]!=0)

    L=L+1;

    for(int  i=L;i>0;i--)

    cout<<c[i];

    OVER;

  • 相关阅读:
    学生管理
    数据类型
    Linux安装、发布Django项目
    函数式编程
    学生管理系统
    mysql数据库工具类
    python操作数据库
    链接mysql建库建表
    列表元组字典集合
    内置对象相关方法
  • 原文地址:https://www.cnblogs.com/M-D-LUFFI/p/4046349.html
Copyright © 2011-2022 走看看