循环在此示例中的工作方式特别是如果奇数初始化为value 3,则比它如何递增获得方形?
#include <stdio.h>
int main(void)
{
int i, n, odd, square;
printf("This program prints a table of squares.n");
printf("Enter number of entries in table :");
scanf("%d", &n);
i = 1;
odd = 3;
for(square = 1; i <= n; odd += 2){
printf("%10d%10dn", i, square);
i++;
square += odd;
}
return 0;
}
我需要逐步澄清,请帮助
这是使用数学技巧。前N奇数的总和始终是正方形。
例如:
1
1 + 3 = 4
1 + 3 + 5 = 9
1 + 3 + 5 + 7 = 16
odd
最初设置为3,square
从1开始。
每次通过循环,打印square
,然后将odd
添加到square
,然后将2添加到odd
中,使其成为下一个奇数。
,因为我们从1
开始首先square = 1
即square^2
和odd = 3
即2*square+1
因此,下一个将是方形^2 2*square 1->(square 1)^2
因此,通常是square^2+2*n+sumOfOddNum(n)
在哪里, sumOfOddNum(n)
是第一个n奇数的总和,如n^2
so,square^2+2*n*square+n^2
[Square = 1]将成为(square+n)^2