字符数组转换成数字
2016-04-06 17:09
113 查看
问题描述:
给定一个由数字组成的字符数组,将它转换成对应的数字值。
如:{'1','2','3','4'} ---> 1234
4
34 = 3*10 + 4
234 = (2*10 + 3)*10 + 4 = 2*10*10 + 3*10 + 4
1234 = ((1*10 + 2) * 10 + 3)* 10 + 4 = 1*10*10*10 + 2*10*10+3*10+4
JAVA代码如下:
解法二,这其实是一个递归。
要想将“1234” ---> 1234 首先将"123"--->123,然后将 '4'--->4
而要将"123"--->123,首先将 "12"--->12,然后将 '3'--->3
....
或者可以这样理解:
1234 = 123*10 + 4
123 = 12*10 + 3
12 = 1*10 + 2
....
递归实现如下:
给定一个由数字组成的字符数组,将它转换成对应的数字值。
如:{'1','2','3','4'} ---> 1234
4
34 = 3*10 + 4
234 = (2*10 + 3)*10 + 4 = 2*10*10 + 3*10 + 4
1234 = ((1*10 + 2) * 10 + 3)* 10 + 4 = 1*10*10*10 + 2*10*10+3*10+4
JAVA代码如下:
public int atoi(char[] s){ int result = 0; for(int i = 0; i < s.length; i++) result = result * 10 + s[i] - '0'; return result; }
解法二,这其实是一个递归。
要想将“1234” ---> 1234 首先将"123"--->123,然后将 '4'--->4
而要将"123"--->123,首先将 "12"--->12,然后将 '3'--->3
....
或者可以这样理解:
1234 = 123*10 + 4
123 = 12*10 + 3
12 = 1*10 + 2
....
递归实现如下:
public int strToInt(char[] c){ return recurse(c, c.length); } private int recurse(char[] c, int len){//len 表示 char[] c 的长度 if(len == 1) return c[len -1] - '0'; else return recurse(c, len - 1) * 10 + (c[len - 1] - '0'); }
相关文章推荐
- 跳转到某个Activity
- 第五周学习总结
- 使用sourcetree 的git flow
- [na]思科产品选型pdf
- 理解Cookie和Session机制
- codeforces#308-E - Vanya and Brackets-枚举+表达式计算
- 链表排序交换节点为什么还得单独交换next指针?
- 欢迎使用CSDN-markdown编辑器
- 定时器NSTimer的简单使用
- 浅谈spring 注解之@Autowired 与@Resource
- 微软CEO 纳德拉将赌注押在人工智能上
- thinkphp框架下实现登录、注册、找回密码功能
- 手动模仿Qt5创建GUI程序过程记录
- widgets之ImageButton
- 如果你是项目的一个组长,如果有个项目很急,要你尽快地完成,你是怎么分配工作任务或者你公司是怎么安排的?
- Android HandlerThread 消息循环机制之源码解析
- 算法练习-NOJ-1006-堡垒问题
- 算法复习笔记:二分查找
- oracle_procedure_function_trigger
- SpringMvc零碎小计