《剑指offer》 大数递增
本题来自《剑指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》 大数递增的更多相关文章
- 《剑指offer》-递增数组中找到和为S的(最小)两个元素
题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. 首先 ...
- 剑指offer编程题Java实现——面试题12相关题大数的加法、减法、乘法问题的实现
用字符串或者数组表示大数是一种很简单有效的表示方式.在打印1到最大的n为数的问题上采用的是使用数组表示大数的方式.在相关题实现任意两个整数的加法.减法.乘法的实现中,采用字符串对大数进行表示,不过在具 ...
- 《剑指offer》面试题12:打印1到最大的n位数
面试题12:打印1到最大的n位数 剑指offer题目12,题目如下 输入数字n,按顺序打印出1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的三位数999 方法一 和面试题11< ...
- [读]剑指offer
研二的开始找工作了,首先祝愿他们都能够找到自己满意的工作.看着他们的身影,自问明年自己这个时候是否可以从容面对呢?心虚不已,赶紧从老严那儿讨来一本<剑指offer>.在此顺便将自己做题所想 ...
- 剑指offer面试题-Java版-持续更新
最近在用Java刷剑指offer(第二版)的面试题.书中原题的代码采用C++编写,有些题的初衷是为了考察C++的指针.模板等特性,这些题使用Java编写有些不合适.但多数题还是考察通用的算法.数据结构 ...
- 剑指offer题目java实现
Problem2:实现Singleton模式 题目描述:设计一个类,我们只能生成该类的一个实例 package Problem2; public class SingletonClass { /* * ...
- 《剑指offer 第二版》题解
剑指Offer 按题号排序 面试题 3:数组中重复的数字 面试题 4:二维数组中的查找 面试题 5:替换空格 面试题 6:从头到尾打印链表 面试题 7:重建二叉树 面试题 8:二叉树的下一个节点 面试 ...
- LeetCode:“剑指 Offer”
LeetCode:"剑指 Offer" 刷题小菜鸡,花了几天时间做了一遍 LeetCode 上给出的 "剑指 Offer" 在此做一下记录 LeetCode主页 ...
- 《剑指offer》面试题11: 数值的整数次方
面试题11: 数值的整数次方 剑指offer面试题11,题目如下 实现函数double power(double base,int exponent),求base的exponent次方, 不得使用库 ...
随机推荐
- synchronized与Lock的区别与使用
1.ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候 线程A和B都要获取对象obj的锁定,假设A获取了对象obj锁,B将等待A ...
- PL/SQL 加字段 修改数据库之后 之后记得保存脚本
- NIO相关
Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer Java NIO系列教程(四) Scatter/G ...
- 尚硅谷Oracle教程-学习笔记2
控制用户权限 1.创建用户 1) SQL> create user atguigu01 2 identified by atguigu01; User created 2) SQL> gr ...
- LwIP Application Developers Manual11---Initializing lwIP
1.前言 2.Initialization for simple lwIP 查看doc/rawapi.txt来获得更多官方信息 #if NO_SYS /* Network interface vari ...
- Linux内存管理 (10)缺页中断处理【转】
转自:https://www.cnblogs.com/arnoldlu/p/8335475.html 专题:Linux内存管理专题 关键词:数据异常.缺页中断.匿名页面.文件映射页面.写时复制页面.s ...
- 题解-POI2014 FAR-FarmCraft
Problem bzoj权限题,洛谷上可提交 洛谷上的奇葩翻译不要看,很多条件缺漏 题意简述:给定一棵树,每条边权为1,给定所有点点权,每条边仅能走两次,求以一定顺序遍历整棵树后,使所有点中的到达时间 ...
- centos6.8配置php-fpm(php已在apache中以模块形式运行,nginx中同时以fastcgi运行)
location ~ \.php(.*)$ { root /mnt/www/wenyin; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; ...
- Spring MVC全局异常处理
继承HandlerExceptionResolver接口实现自己的处理方法,如: public class MyHandlerExceptionResolver implements HandlerE ...
- jQuery中如何实现多库并存?
多库共存就是“$ ”符号的冲突. 方法一: 利用jQuery的实用函数$.noConflict();这个函数归还$的名称控制权给另一个库,因此可以在页面上使用其他库.这时,我们可以用"jQu ...