如何使用 For 循环和函数编写 C 语言程序来查找系列 1²+2²+3²+….+n² 之和,并附带示例。在看示例之前,C 语言查找系列 1²+2²+3²+….+n² 之和的数学公式为 = ( n (n+1) (2n+1)) / 6
C 语言查找系列 1²+2²+3²+....+n² 之和的程序
在此 C 程序中,用户被要求输入任何正整数。然后使用该值,编译器将使用上述公式查找系列 12 + 22 + 32 + … + n2 之和。
在 main() 函数中,我们声明了两个整数变量 Number 和 Sum。printf 语句将要求用户输入任何整数值。下面的 C 编程 scanf 语句会将用户输入的整数值赋给变量 Number。
/* C Program to Calculate Sum of series 1²+2²+3²+....+n² */
#include <stdio.h>
int main()
{
int Number, Sum = 0;
printf("\n Please Enter any positive integer \n");
scanf(" %d",&Number);
Sum = (Number * (Number + 1) * (2 * Number + 1 )) / 6;
printf("\n The Sum of Series for %d = %d ",Number, Sum);
}
Please Enter any positive integer
5
The Sum of Series for 5 = 55
在下一行,我们将使用上述公式计算系列 1²+2²+3²+4²+5² 之和
Sum = (Number * (Number + 1) * (2 * Number + 1 )) / 6;
Sum = (5 * (5 + 1) * (2 * 5 +1)) / 6
Sum = (5 * 6 * 11) / 6
Sum = 330 /6
Sum = 55
C 语言查找系列 1²+2²+3²+....+n² 之和的程序,当输入为 5 时,最终输出为 55
C 语言计算系列 1²+2²+3²+….+n² 之和的程序
如果您想在程序输出中显示系列 12 + 22 + 32 +42 + 52 ,那么我们需要添加额外的 For 循环来显示,如下所示
#include <stdio.h>
int main()
{
int Number, i, Sum = 0;
printf("\nPlease Enter any positive integer \n");
scanf("%d",&Number);
Sum = (Number * (Number + 1) * (2 * Number + 1 )) / 6;
for(i =1; i<=Number;i++)
{
if (i != Number)
printf("%d^2 + ",i);
else
printf("%d^2 = %d ",i, Sum);
}
}

main 函数中的 For 循环 将遍历每个成员并显示输出。
在上面的截图中,用户输入的 is 4,所以,
Sum = (Number * (Number + 1) * (2 * Number + 1 )) / 6;
Sum = (4 * (4 + 1) * (2 * 4 +1))/6
Sum = (4 * 5 * 9) / 6
= 180 /6
Sum = 30
现在,编译器将进入 for 循环
第一次迭代
i = 1,所以 for 循环中的条件 (i <= Number) 为 TRUE (1 <=4)。接下来,它会进入 if 条件 (i != Number)。这意味着 (1 != 4) – 为 TRUE。因此,它将输出打印为 1²+
i = 2。重复此过程,直到 i 达到 4。当 i = 4 时,if 条件失败。因此,将打印 Else 语句。
最终输出为 1²+2²+3²+4² = 30
C 语言使用函数查找系列 1²+2²+3²+….+n² 之和的程序
在此 C 程序中,用户输入任何正整数,然后使用该值,编译器将使用 函数查找系列 12 + 22 + 32 + … + n2 之和。
#include <stdio.h>
void Sum_Of_Series(int);
int main()
{
int Number;
printf("\n Please Enter any positive integer \n");
scanf("%d",&Number);
Sum_Of_Series(Number);
}
void Sum_Of_Series(int Number)
{
int i, Sum;
Sum = (Number * (Number + 1) * (2 * Number + 1 )) / 6;
for(i =1;i<=Number;i++)
{
if (i != Number)
printf("%d^2 + ",i);
else
printf(" %d^2 = %d ", i, Sum);
}
}
Please Enter any positive integer
9
1^2 + 2^2 + 3^2 + 4^2 + 5^2 + 6^2 + 7^2 + 8^2 + 9^2 = 285
使用递归查找系列 1²+2²+3²+….+n² 之和的程序
请参考“递归”文章中的“使用递归查找系列 1²+2²+3²+….+n² 之和”,以了解代码和工作原理。
评论已关闭。