本题来自《剑指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. android 内存回收及怎样避免内存泄露

    http://blog.vunso.com/201307/android%E5%9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6%E6%9C%BA%E5%88%B6%E5%8F%8A% ...

  2. Lr-代理录制

    哈哈,第一讲,决定分享一下代理的一些知识,是我学习的总结,可能会有错误,欢迎大家指正. 问题一:代理录制是为了解决什么问题或者说为什么么要使用代理呢? 这是因为lr只能使用IE浏览器进行录制,如果想使 ...

  3. window 安装gcc交叉编译器

    参考网址:  https://blog.csdn.net/zsy19881226/article/details/46952535

  4. 个人经验~mongo故障处理思路

    一 简介:mongodb 应该如何排查二 分析角度   linux 角度   1 硬件是否有问题 常见主板 raid卡 和raid磁盘组   2 综合指标 负载   uptime : 1min 5mi ...

  5. hsf

    参考文章: ----- 架构和框架的区别 1.HSF源码剖析 2.Http和RPC区别 3.分布式服务框架HSF 4.高并发架构系列:如何从0到1设计一个类Dubbo的RPC框架 5.HSF的原理分析 ...

  6. SpringSecurity实现短信验证码登录(Token)

  7. Linker Scripts3--链接脚本概述

    1.前言 本文主要翻译了The Link Script英文文献. (1)每个链接都是由链接脚本控制,链接脚本是用链接命令语言写的: (2)链接脚本的主要目的是描述输入文件的sections如何映射到输 ...

  8. MIPI协议学习总结(一)【转】

    转自:https://www.cnblogs.com/EaIE099/p/5200341.html 一.MIPI 简介: MIPI(移动行业处理器接口)是Mobile Industry Process ...

  9. MySQL如何启用密码强度审计【转】

    1.密码验证插件安装 要使服务器可以使用,插件库文件必须位于MySQL插件目录(plugin_dir系统变量指定的目录)中.如有必要,请设置plugin_dir服务器启动时的值, 以告知服务器插件目录 ...

  10. Centos6.8下卸载软件(以Mysql为例)

    1 删除Mysql yum remove  mysql mysql-server mysql-libs mysql-server; find / -name mysql 将找到的相关东西delete掉 ...