C-代码如何计算正方形



循环在此示例中的工作方式特别是如果奇数初始化为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 = 1square^2odd = 32*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

最新更新