本题来自《剑指offer》 大数的存储

题目:

  针对以下问题:大数的存储。大数的相加。大数的运算。

思路:

  当数据较大时候,long long数据已经存储不了,借助数组的方式进行存储。

  假设数据的长度等于数组的长度+1(因为数组的最后一位是'\0')nLength;isOverFlow是判断是否溢出,takeOver是进位标志符,默认是0。

  从数组的后面向前遍历,即数据的加减从个位开始计算起。

    对当前位进行计算,要加上进位符。

    如果检测到是个位,便数据自增。

    如果检测到数据大于或者等于10,将进位符改为1,并且将10减去,存储当前的值。否则直接存储当前的值。

Code:

  本代码没有测试,提供一个自增程序的思路。

bool Incement(char* number){
  bool isOverFlow = false; //溢出标志符
  int takeOver = 0; //进位符
  int nLength = strlen(number); //数组的长度
  for (int i=nLength;i>=0;i--){ //从个位开始遍历
    int nsum = number[i]-'0'+takeOver; //循环刚开始进来就计算当前的值,要加上进位符
    if (i == nLength-1){            //如果检测到是个位,便自增
      nsum ++;
    }
    if (nsum >= 10){               //如果个位检测到大于等于10,存储当前的值需要减去10
      if (i==0){
        isOverFlow = true;         //检测到是溢出了
      }else{
        nsum -= 10;
        takeOver = 1;            //设置进位符
        number[i] = '0' + nsum;
      }
    }else{
      number[i] = '0' + nsum;
      break;
    }
  }
  return isOverFlow;
}

《剑指offer》 大数递增的更多相关文章

  1. 《剑指offer》-递增数组中找到和为S的(最小)两个元素

    题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. 首先 ...

  2. 剑指offer编程题Java实现——面试题12相关题大数的加法、减法、乘法问题的实现

    用字符串或者数组表示大数是一种很简单有效的表示方式.在打印1到最大的n为数的问题上采用的是使用数组表示大数的方式.在相关题实现任意两个整数的加法.减法.乘法的实现中,采用字符串对大数进行表示,不过在具 ...

  3. 《剑指offer》面试题12:打印1到最大的n位数

    面试题12:打印1到最大的n位数 剑指offer题目12,题目如下 输入数字n,按顺序打印出1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的三位数999 方法一 和面试题11< ...

  4. [读]剑指offer

    研二的开始找工作了,首先祝愿他们都能够找到自己满意的工作.看着他们的身影,自问明年自己这个时候是否可以从容面对呢?心虚不已,赶紧从老严那儿讨来一本<剑指offer>.在此顺便将自己做题所想 ...

  5. 剑指offer面试题-Java版-持续更新

    最近在用Java刷剑指offer(第二版)的面试题.书中原题的代码采用C++编写,有些题的初衷是为了考察C++的指针.模板等特性,这些题使用Java编写有些不合适.但多数题还是考察通用的算法.数据结构 ...

  6. 剑指offer题目java实现

    Problem2:实现Singleton模式 题目描述:设计一个类,我们只能生成该类的一个实例 package Problem2; public class SingletonClass { /* * ...

  7. 《剑指offer 第二版》题解

    剑指Offer 按题号排序 面试题 3:数组中重复的数字 面试题 4:二维数组中的查找 面试题 5:替换空格 面试题 6:从头到尾打印链表 面试题 7:重建二叉树 面试题 8:二叉树的下一个节点 面试 ...

  8. LeetCode:“剑指 Offer”

    LeetCode:"剑指 Offer" 刷题小菜鸡,花了几天时间做了一遍 LeetCode 上给出的 "剑指 Offer" 在此做一下记录 LeetCode主页 ...

  9. 《剑指offer》面试题11: 数值的整数次方

    面试题11: 数值的整数次方 剑指offer面试题11,题目如下 实现函数double power(double base,int exponent),求base的exponent次方, 不得使用库 ...

随机推荐

  1. Leetcode#867. Transpose Matrix(转置矩阵)

    题目描述 给定一个矩阵 A, 返回 A 的转置矩阵. 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引. 示例 1: 输入:[[1,2,3],[4,5,6],[7,8,9]] 输出:[[1 ...

  2. java 文档

    文档路径: https://docs.oracle.com/javase/10/docs/api/overview-summary.html

  3. 安装Vmware并破解

    1. 先下载Vmware安装包 链接:http://pan.baidu.com/s/1hsjCKgk 密码:c1o6 2. 解压缩 3. 运行VMware-workstation-full-10.0. ...

  4. CPU火焰图

    y轴:栈深度 x轴:cpu时间 长方形:一个栈(方法) 长度:出现在监视器中的时长(占用cpu的时间) 其他:从左到右的顺序只是按字母排序,无其他意义 火焰图就是看顶层的哪个函数占据的宽度最大.只要有 ...

  5. 如何在eclipse安装apk包

    如何在eclipse安装下载好的apk包 好像是有好几种方法,我成功的是这种. 1.首先启动模拟器,我选择的是Android 4.2.2,因为...默认安得Android 7.1.1起不了,真是大坑, ...

  6. DeepLearning.ai-Week2-Residual Networks

    1 - Import Packages import numpy as np from keras import layers from keras.layers import Input, Add, ...

  7. 已安装nginx支持https配置 the "ssl" parameter requires ngx_http_ssl_module

    原文链接:https://blog.seosiwei.com/detail/28 nginx已安装,ssl模块未安装的解决方法: 如果需要在linux中编译自己的nginx服务器,请参照:https: ...

  8. Struts2学习(二)

    1.Struts2的Servlet的API的访问 1.1   完全解耦合的方式 ActionContext context = ActionContext.getContext( ); 通过conte ...

  9. npm & webpack

    npm 全称 node package manager,是 js 的包管理工具,开发人员可以把写好的框架.库发布到 npm 上,使用者在使用时候就可很方便地通过 npm 来下载,只要在 npm官网 有 ...

  10. oracle监听器初识-配置多SERVICE_NAMES

    现象: 为数据库设置多个服务名(通过SCOPE=both设置,同时修改参数文件) SQL> show parameter service_names; NAME TYPE VALUE ----- ...