课程
/后端开发
/Java
/Java入门第三季
为什么明明用减去3*i,实际得出的数却是2的等差数列
2016-06-02
源自:Java入门第三季 2-6
正在回答
首先题目要求是从右到左加入“,”,如果你非要从左到右也是可以的,只是结果可能会不同。你的代码的问题是出现在str.length()-3*i,因为当你插入一个逗号后str的长度就会加1,所以你的减去3就相当于减去2了,正确的方式如下:
YEAHDDD 提问者
夜还没黑
注意insert是在索引位置前插入,插入之后原来位置的字符后退一位。这道题首先要数学建模,就用个短一点的字符串,把要插入的位置标注出来,因为从右往左插入,所以插入的位置与字符串长度之间是有数学关系的。有规律的多次运算习惯上想到的就是用for循环,关键是要确定循环参数 i ,以及 i 的边界和循环方式。字符串长度被3整除得到的值,就是插入的次数,那么i的边界就是1到length/3,而插入位置的索引值就是length-3*i。仅供参考!
打个括号试试,可能是运算符优先级的问题吧
举报
Java中你必须懂得常用技能,不容错过的精彩,快来加入吧
2 回答为什么代码和老师一样结果却不一样啊?
3 回答为什么输出结果是这个?
2 回答为什么这样写
2 回答为什么我跟着写的,结果运行会出现这样一组包名称
4 回答为什么我写的这两种containsAll都报错了?