为什么明明用减去3*i,实际得出的数却是2的等差数列
首先题目要求是从右到左加入“,”,如果你非要从左到右也是可以的,只是结果可能会不同。你的代码的问题是出现在str.length()-3*i,因为当你插入一个逗号后str的长度就会加1,所以你的减去3就相当于减去2了,正确的方式如下:
注意insert是在索引位置前插入,插入之后原来位置的字符后退一位。这道题首先要数学建模,就用个短一点的字符串,把要插入的位置标注出来,因为从右往左插入,所以插入的位置与字符串长度之间是有数学关系的。有规律的多次运算习惯上想到的就是用for循环,关键是要确定循环参数 i ,以及 i 的边界和循环方式。字符串长度被3整除得到的值,就是插入的次数,那么i的边界就是1到length/3,而插入位置的索引值就是length-3*i。仅供参考!
打个括号试试,可能是运算符优先级的问题吧