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

中小企业网站多大空间酷网站欣赏

中小企业网站多大空间,酷网站欣赏,建立网站平台,百度一下百度网页官🎉欢迎大家收看,请多多支持🌹 🥰关注小哇,和我一起成长🚀个人主页🚀 👑目录 分析:🚀 数字层面分析⭐ 字符串层面分析⭐ 代码及运行结果分析:&#x1f6…

 🎉欢迎大家收看,请多多支持🌹

🥰关注小哇,和我一起成长🚀个人主页🚀


👑目录

分析:🚀 

数字层面分析

字符串层面分析

代码及运行结果分析:🚀

代码:

运行结果:​编辑

具体分析:


题目 

分析: 

数字层面分析

先来看在二进制中 1+0==1,0+0==0,1+1==0

如果两个多位的二进制数相加,就还要考虑是否向前一位进1的问题,显然上面的三个式子中只有 1+1==0是需要向前进一位的。

考虑了向前进位的问题,还要考虑当前位的数字相加是否要多加一个来自上一位进的1(即当前位的上一位如果进1了的话,那么当前位相加是需要加上这个进的 1):

前一位没有进 1前一位进 1
1和0相加1+0 == 1,不向前一位进11+0+1 == 0,向前进1
1和1相加1+1 == 0,向前进11+1+1 == 1,向前进1
0和0相加0+0 == 0,不向前进10+0+1 == 1,不向前进1

因此,我们可以知道1+0、0+0、1+1这三种情况的结果都有两种情况,

并且,当 1+1 相加的时候,一定会向前进一位,

0+0 相加的时候,一定不会进一位,

而 0+1 时,就会有进一位和不进一位两种情况,即它的上一位的两个数相加进了一位,那么0+1才会向前进一位;它的上一位两个数没有向前进位,那么0+1就不会进位

字符串层面分析

计算数字时我们都会右对齐来计算,但是在代码中我们习惯从左到右来分析解决问题,因此我们可以将字符串反转,计算完后在反转回来就能够得到原来的字符串相加的结果

这里需要用到StringBuilder类和StringBuffer类的reverse()方法来反转字符串,它会修改调用的对象,而不是新建一个对象:

str.reverse();//将字符串str反转

两个字符串的长度如果不相同,我们可以给较短的字符串反转之后再末尾添加上'0'来计算,并且不会影响结果。

str.append("hello");//给字符串str尾部追加一个hello

代码及运行结果分析:

代码:

import java.util.Scanner;
public class Test {public static void main(String[] args) {//:输入两个字符串a和b,字符串内容为二进制数字,求两个字符串相加的结果,// 加法计算方法以二进制方式计算,并返回对应的字符串结果。要求程序尽可能的高效。//字符串长度不超过100Scanner in = new Scanner(System.in);while(in.hasNextLine()){String str1 = in.nextLine();String str2 = in.nextLine();Solution solution = new Solution();String ret = solution.solve(str1,str2);System.out.println(ret);}}static class Solution {public String solve(String str1, String str2) {int len1 = str1.length();int len2 = str2.length();int maxLen = Math.max(len1,len2);StringBuilder strB1 = new StringBuilder(str1).reverse();StringBuilder strB2 = new StringBuilder(str2).reverse();StringBuilder str = new StringBuilder();Boolean flag = false;//代表不进位for(int i = 0;i < maxLen;i++){char ch1 = i< len1?strB1.charAt(i):'0';char ch2 = i< len2?strB2.charAt(i):'0';if(ch1=='0'&&ch2=='0'){str.append(flag?'1':'0');flag = false;//相加为0,不用进一}else if(ch1 == '1'&& ch2 == '1'){str.append(flag?'1':'0');flag = true; //相加要进1}else{str.append(flag?'0':'1');//注意}}if(flag == true){str.append('1');}return str.reverse().toString();}}
}

运行结果:

可以看到我们成功解决了这个题目 

具体分析:

 StringBuilder strB1 = new StringBuilder(str1).reverse();StringBuilder strB2 = new StringBuilder(str2).reverse();

这两行代码就第一行来说,

new StringBuilder(str1)创建了一个StringBuilder类的对象,并将对象的内容初始化为字符串str1的内容,然后再.reverse()将内容反转。strB1变量引用了这个对象。

char ch1 = i< len1?strB1.charAt(i):'0';
char ch2 = i< len2?strB2.charAt(i):'0';

这两行代码是来判定是否需要给当前为添加一个0:

注意相加过程的0和1相加的代码,由前面的数字层面分析我们知道,0和1相加是否需要进1取决于它的上一位相加是否进1,所以我们不需要在这里写flag = true或者false,写了就会错

if(ch1=='0'&&ch2=='0'){str.append(flag?'1':'0');flag = false;//相加为0,不用进一
}else if(ch1 == '1'&& ch2 == '1'){str.append(flag?'1':'0');flag = true; //相加要进1
}else{str.append(flag?'0':'1');//注意
}

代码的后面写这个,是因为当字符串最后两个0或1相加完后,如果是两个1相加就还要再进1

 if(flag == true){str.append('1');}

🎉🎉本次题目分析结束啦,感谢支持!

如有高见,来评论区发言吧~🌹

🥰喜欢请三连哦❤️,再次感谢!

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

相关文章:

  • 十堰网站建设_网站制作_软件开发_网店培训 优易厦门有什么网站制作公司
  • 万峰科技著.asp.net网站开发四酷全书电子工业出版社手机评测哪个网站做的好点
  • 做那种网站受欢迎优秀文创产品设计案例及分析
  • 如何维护公司网站如何做美食网站设计
  • 网站运营专员郑州推广网站
  • 门户网站建设情况网站金融模版
  • 网站开发我嵌入式开发广州番禺区天气预报
  • 怎么做企业曝光引流网站网站定制站
  • 西宁网站建设报价cu君博規范红色企业网站源码
  • 网站推广专家十年乐云seo王也图片高清头像
  • 网站建设项目的生命周期wordpress 文章透明
  • 江门网站建设推荐设计logo公司
  • 秀米网站怎么做推文优化网站用什么软件好
  • 图片做记录片的是哪个网站网站中点击链接怎么做的
  • 建筑设计网站排行榜响应式网站设计尺寸
  • 郑州网站推广招聘产品推广策划书
  • 网站 多语wordpress 导入网页
  • 源码建网站创建一个网站的项目体现项目完成速度因素的
  • 长尾关键词爱站网自建电商平台
  • 成品网站源码多少钱东莞市公司网站建设
  • 男女做暖暖网站php网站建设英文文献
  • 爱站网关键词挖掘查询工具本地网站后台管理建设
  • 网站开发的内容和特点如何开展网络营销活动
  • 聊城制作手机网站seo诊断优化专家
  • 免费公司网站模板网站后台无法审核
  • 365建站器专业品牌网站建设价格
  • linux做网站推荐企业门户网站建设
  • 网页空间免费申请河北seo优化
  • 设计师新手接单网站深圳市建筑有限公司
  • 禹城做网站设计感超强的公司名字