-3

我知道如何显示奇数,但不知道如何显示奇数的总和以获得1 4 9 16 25 36 49 64 81 100输出的想法是使用

  • 1=1
  • 1+3=4
  • 4+5=9
  • 等等

这个想法是避免乘法。(我知道这将是最简单的解决方案。)

到目前为止,我所拥有的是:

public static void main(String[] args) {

     for(int i=1; i <= 100; i++){

             if( i % 2 != 0){
                     System.out.print(i + " ");
             }
     }

}

4

3 回答 3

2

你有循环。您所缺少的只是添加:

 int num = 0;
 for(int i=1; i <= 100; i++){
     if( i % 2 != 0) {
         num = num + i;
         System.out.print(num + " ");
     }
 }
于 2016-01-18T06:45:47.600 回答
1

如果目的是避免乘法,那么用除法(或更确切地说是余数)代替它似乎没有意义。

您想要的是使用+=运算符:

int num = 0;
for (int i = 1; i <= 100; i += 2) {
    num += i;
    System.out.print(num + " ");
}

输出

1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361 400 441 484 529 576 625 676 729 784 841 900 961 1024 1089 1156 1225 1296 1369 1444 1521 1600 1681 1764 1849 1936 2025 2116 2209 2304 2401 2500 

注意:这只是Eran 答案的优化版本。

于 2016-01-18T07:20:04.410 回答
0

因为它们是正方形:两个正方形之间的差始终是其底数的两倍减 1:

 int num = 0;
 for(int i=1; i <= 100; i++){
         num += i+i-1;
         System.out.print(i + " ");
 }
于 2016-01-18T06:48:41.507 回答