问答详情
源自:2-6 Java 中的 StringBuilder 类的常用方法

为什么我这样写却是这种结果??

http://img.mukewang.com/57502a1d00014d3502940250.jpghttp://img.mukewang.com/57502a6600013b6807010599.jpg为什么明明用减去3*i,实际得出的数却是2的等差数列

提问者:YEAHDDD 2016-06-02 20:47

个回答

  • 夜还没黑
    2016-06-04 08:46:12
    已采纳

    首先题目要求是从右到左加入“,”,如果你非要从左到右也是可以的,只是结果可能会不同。你的代码的问题是出现在str.length()-3*i,因为当你插入一个逗号后str的长度就会加1,所以你的减去3就相当于减去2了,正确的方式如下:http://img.mukewang.com/575224a3000151dd06320475.jpg

  • 慕函数9049899
    2016-06-09 01:04:36

    注意insert是在索引位置前插入,插入之后原来位置的字符后退一位。这道题首先要数学建模,就用个短一点的字符串,把要插入的位置标注出来,因为从右往左插入,所以插入的位置与字符串长度之间是有数学关系的。有规律的多次运算习惯上想到的就是用for循环,关键是要确定循环参数 i ,以及 i 的边界和循环方式。字符串长度被3整除得到的值,就是插入的次数,那么i的边界就是1到length/3,而插入位置的索引值就是length-3*i。仅供参考!

  • Mr_sosann
    2016-06-02 21:57:43

    打个括号试试,可能是运算符优先级的问题吧