为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

正在回答

3 回答

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

0 回复 有任何疑惑可以回复我~
#1

YEAHDDD 提问者

非常感谢!!!
2016-06-04 回复 有任何疑惑可以回复我~
#2

夜还没黑

不客气
2016-06-05 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~

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

0 回复 有任何疑惑可以回复我~
#1

YEAHDDD 提问者

在哪里打括号?我刚刚试了下,在3*i这里打括号还是一样的结果
2016-06-03 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信