关于累加和累积的问题

编程小石头 在做作业的时候碰到一个问题,有一个棋盘,有64个方格,在第一个方格里面放1粒芝麻重量是0.00001KG,第二个里面放2粒,第三个里面放4,求出棋盘上放的所有芝麻的重量

我找到了两种方法都可以实现,但是有一种我一直理解不了

这种我可以理解
 <script>
        var c = 0
        for (var a = 1; a <= 64; a++) {
            c = c + Math.pow(2,a-1);
        }
        document.write("一共"+c*0.00001+"kg")
   
    </script>


这种我理解不了,累积的话他应该需要在加上自身才能实现,应该是 i=i+i*2把每次的累加到一起,但是不对
  <script type="text/javascript">
        var i = 1;
        for (var j = 1; j <= 64; j++) {
            i = i * 2;
      
        }
        document.write('棋盘上放的所有芝麻的重量为:' + i * 0.00001 + 'KG');


    </script>

```

这个第二个应该稍微改一下,范围改到65,然后结尾输出i-1
可以理解为1+2+4+...2^64=2^65-1

很好理解啊,后一个数是前一个数的两倍,不就是i = i * 2