C 程序计算级数 1³+2³+3³+….+n³ 的和

如何使用 for 循环、递归和函数编写 C 程序来计算级数 1³+2³+3³+….+n³ 的和,并附带示例。这个级数 1³+2³+3³+….+n³ 也被称为 C 语言中 n 个自然数的立方和。C 程序计算级数 1³+2³+3³+….+n³ 的和的数学公式 = ( n (n+1) / 6)²

C 程序计算级数 1³+2³+3³+….+n³ 的和

在此 C 程序中,用户被要求输入任何正整数。然后,使用该值,C 编译器将使用上述公式计算级数 1³+2³+3³+….+n³ 的和。

/* Sum of Cubes of n Natural Numbers */

#include <stdio.h>
#include <math.h>

int main()
{
  int Number, Sum = 0;

  printf("\n Please Enter any positive integer \n");
  scanf(" %d",&Number);

  Sum = pow(((Number * (Number + 1))/ 2), 2);
 
  printf("\n The Sum of Series for %d = %d ",Number, Sum);
}
C Program to Find Sum of series 1³+2³+3³+....+n³

首先,我们声明了两个整型变量 Number 和 Sum。下一行,我们使用上述公式计算级数 1³+2³+3³+4³+5³ 的和。

Sum = pow (((Number * (Number + 1)) / 2), 2);
Sum = pow (((5 * (5 + 1)) / 2), 2);
Sum = pow (((5 * 6) / 2), 2);
Sum = pow ((30 / 2), 2);
Sum = pow (15, 2);
Sum = 15 * 15 = 225

C 语言的最终 printf 语句将把 Sum 作为输出打印出来。

printf("\n The Sum of Series for %d = %d ",Number, Sum);

因此,C 程序计算级数 1³+2³+3³+….+n³ 的和对于 5 的最终输出是 225。

C 程序使用 for 循环计算级数 1³+2³+3³+….+n³ 的和

如果您想在输出中显示级数 1³+2³+3³+4³ 的顺序,那么我们必须添加额外的 for 循环来显示,如下所示。

/* Sum of Cubes of n Natural Numbers */

#include <stdio.h>
#include <math.h>

int main()
{
  int Number, i, Sum = 0;

  printf("\nPlease Enter any positive integer \n");
  scanf("%d",&Number);

  Sum = pow(((Number * (Number + 1))/ 2), 2);
  
  for(i =1; i<=Number;i++)
  {
    if (i != Number)
       printf("%d^3 + ",i);
    
    else
       printf("%d^3 = %d ",i, Sum);
  }
}
Please Enter any positive integer 
4
1^3 + 2^3 + 3^3 + 4^3 = 100 

main 函数中的 for 循环将遍历每个成员并显示输出。

for(i =1; i<=Number;i++)
{
    if (i != Number)
       printf(" %d^3 + ",i);    
    else
       printf(" %d^3 = %d ",i, Sum);
}

在上面的输出中,用户输入的数字是 4,Sum = 100。现在编译器将进入 For 循环

第一次迭代
i = 1,因此 for 循环中的条件 (i <= Number) 为 TRUE (1 <=4)。接下来,它会进入 if 条件 (i != Number)。这意味着 (1 != 4) – 这是 TRUE,因此它将输出 1³+。

i 增量到 2。它将执行相同的操作,直到 i 达到 4。当它等于 4 时,if 条件将失败,因此将打印 else 语句。

这个 C 程序的最终输出将是 1³+2³+3³+4³ = 100。

C 程序使用函数计算级数 1³+2³+3³+….+n³ 的和

此 C 程序使用 函数来计算级数 1³+2³+3³+….+n³ 的和。

/* Sum of Cubes of n Natural Numbers */

#include <stdio.h>
#include <math.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 = 0;
  Sum = pow (((Number * (Number + 1))/ 2), 2);;
  
  for(i =1;i<=Number;i++)
  {
   if (i != Number)
     printf("%d^3  + ",i);

   else
     printf(" %d^3 = %d ", i, Sum); 
  } 
}
 Please Enter any positive integer 
6
1^3  + 2^3  + 3^3  + 4^3  + 5^3  +  6^3 = 441

程序的第一行是 用户定义函数的声明。
在 main() 函数中,

void Sum_Of_Series(int);

接下来,我们调用了用户定义的函数 Sum_Of_Series()。

Sum_Of_Series(Number);

当编译器到达 Sum_Of_Series() 时,它将跳转到函数定义进行计算。我们在上面的示例中已经解释了逻辑。

C 程序使用递归计算级数 1³+2³+3³+….+n³ 的和

此 C 程序允许输入 N 值,然后使用递归查找级数 1³+2³+3³+….+n³ 的和。

/* Sum of Cubes of n Natural Numbers */

#include <stdio.h> 

int Sum_Of_Series(int);

int main()
{
  int Number, Sum;

  printf("\nPlease Enter any positive integer \n");
  scanf("%d",&Number);

  Sum =Sum_Of_Series(Number);

  printf("\nSum of the Series  = %d",Sum);
}

int Sum_Of_Series(int Number)
{
  if(Number == 0)
    return 0;
  
  else      
    //Recursive Calling   
    return (Number * Number * Number) + Sum_Of_Series(Number-1);  
}
Please Enter any positive integer 
3

Sum of the Series  = 36

函数定义

在 Sum_Of_Series (Number) 函数中,如果用户输入的 Number 是 0,则函数将返回 0,否则它将返回。

(Number * Number * Number) + Sum_Of_Series(Number-1);

让我们将上述表达式分开以便更好地理解。
(Number * Number * Number) = 将数字乘以三次。
Sum_Of_Series(Number – 1) = 调用相同的函数,数字减 1。

从上面的输出中,用户输入的数字是 3,

级数 1³+2³+3³+….+n³ 递归 1 的和
Number = 3,大于 0 且 Sum 为 0,因此
Sum = (Number * Number) + Sum_Of_Series(Number-1)
Sum = (3 * 3 * 3) + Sum_Of_Series (3 – 1)
Sum = 27 + Sum_Of_Series (2)
Sum 值为 = 27

递归 2
Number = 2,大于 0 且 Sum 为 27。
Sum = (2 * 2 * 2) + Sum_Of_Series (2 – 1)
Sum = 8 + Sum_Of_Series (1)
Sum 值为:27 + 8 = 35

递归 3
Number = 1,大于 0 且 Sum 为 35,因此,
Sum = (1 * 1 * 1) + Sum_Of_Series (1 – 1)
Sum = 1 + Sum_Of_Series (0)
Sum 值为:35 + 1 = 36

递归 4

Number = 0,这意味着第一个 if 条件为 True,因此它将退出函数。Sum 的最终值为 36。我们必须使用一些条件来退出递归调用。如果您忘记了,那么 递归函数将执行无数次。