当前位置: 首页 > news >正文

河南建设工程质量监督局网站阿勒泰建设局网站

河南建设工程质量监督局网站,阿勒泰建设局网站,网络建站详情图,网络软件开发数组实现整数加法 问题描述 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。详见leetcode66 问题…

数组实现整数加法

问题描述

给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。详见leetcode66

问题分析

可以从数组的末尾,即length-1下标处开始向前遍历,末尾元素➕1,如果没有进位,直接返回该数组(例如 123+1->124),如果有进位,前一位继续加一,直至没有进位(例如 19+1->20),如果循环结束,仍有进位,则需要创建一个比原数组长度增加1的数组,将首元素置为1,进行返回(例如 99+1->100)。

代码实现

public int[] plusOne(int[] digits) {for(int i=digits.length-1;i>=0;i--){digits[i]++;digits[i]%=10;if(digits[i]!=0){return digits;}}digits = new int[digits.length+1];digits[0] = 1;return digits;
}

字符串加法

问题描述

给定两个字符串形式的非负整数,计算他们的和并仍然以字符串的形式返回。

问题分析

从两个字符串末尾字符依次向前遍历,取对应位的字符进行加法,设置进位标识,结果可通过StringBuilder进行存储。最后反转即可。

代码实现

public static String plusString(String str1, String str2) {int i = str1.length() - 1;int j = str2.length() - 1;int add = 0;int x;int y;StringBuilder sb = new StringBuilder();while (i >= 0 || j >= 0 || add != 0) {if (i >= 0) {x = str1.charAt(i) - '0';} else {x = 0;}if (j >= 0) {y = str2.charAt(j) - '0';}else {y = 0;}int result = x + y + add;sb.append(result%10);if(result/10 == 1){add = 1;}else{add = 0;}i--;j--;}return sb.reverse().toString();
}

二进制加法

问题描述

给你两个二进制字符串 a 和 b ,以二进制字符串的形式返回它们的和。详见leetcode67

问题分析

仍然是两个字符串末尾字符依次向前遍历,取对应位的字符进行加法,设置进位标识,结果可通过StringBuilder进行存储。最后反转即可。只是结果取模和判断进位与十进制有所不同,详见代码实现

代码实现

public String addBinary(String a, String b) {int i = a.length() - 1;int j = b.length() - 1;int add = 0;int x;int y;StringBuilder sb = new StringBuilder();while(i>=0 || j>=0 || add!=0){if(i>=0){x = a.charAt(i)-'0';}else{x = 0;}if(j>=0){y = b.charAt(j)-'0';}else{y = 0;}int sum = x + y + add;sb.append(sum%2);add = sum / 2;i--;j--;}if(add == 1){sb.append(1);}return sb.reverse().toString();
}

总结与拓展

数组和字符串(本质上是字符数组)的加法其实只需要尽心遍历相加即可,但是数字是从低位到高位相加,而字符串是从高位到低位存储。所以需要反响遍历,并且注意进位,通过十进制与二进制的加法,可以拓展到任意进制的加法,只是在结果取模和判断进位时有所不同。

http://www.yayakq.cn/news/282551/

相关文章:

  • 页面无法设置wordpress南宁seo优化公司
  • 做美食网站视频下载深圳注册公司怎么注册
  • 杭州大型网站建设枫林seo
  • 部门网站建设内容方案自己创建个人免费网站
  • 大丰区城乡和住房建设局网站盘锦网站开发公司
  • qt做网站服务器挖矿网站怎么做
  • 做国外营销型网站微商城微网站开发
  • 热卖平台网站怎么做网站开发的职业目标
  • 滁州市建设局网站西安最新出行政策
  • 参与网站网站建设做网站的标题图片
  • 做软件常用的网站有哪些软件有哪些wordpress 模板添加图片
  • 网站多久会被百度收录wordpress广告代码是什么
  • 毕业答辩问题怎么做的这个网站网站用图怎么做文件小质量高
  • 备案 网站下线深圳西丽网站建设公司
  • 大连网站前端制作公司山东诚祥建设集团公司网站
  • 做软件网站郑州联通网站备案
  • 如何建设公司网站信息苏州智能网站建设
  • 网站做2微码论坛式网站建设
  • 辽宁省住房和城乡建设厅证件查询搜索引擎优化的方法和技巧
  • 青白江建设网站会议响应式网站开发
  • 网站建设比赛三种常用的网站设计软件
  • 妇幼医院网站建设方案桓台网站建设
  • 皋兰网站建设平台遂溪手机网站建设
  • 利辛网站建设无限空间 网站
  • 网站建设佰首选金手指六vultr搭建wordpress
  • 长寿网站制作怎么做网站教程简单
  • 做网站交付标准企业邮箱登录
  • 做外贸网站怎么设计国外交易平台有哪些
  • 国外做网站推广实实通信的视频网站怎么做
  • 专业的丹徒网站建设互联网营销行业