【问题标题】:Getting the sum for loop factorial获取循环阶乘的总和
【发布时间】:2022-01-08 13:38:15
【问题描述】:

我可以请教一下吗? 我正在尝试获取标记为“计算”的值的总和。 我的代码目前正在为每次循环输出值,但我只想要 1 个值,它是所有这些值的总和。

提前感谢您的建议。

#include<stdio.h>

int i, f = 1;
float calculation = 0;
int main() 
{
    for (i = 1; i <= 19; i++) 
    {
        f = f * i;
        //printf("Factorial of %d is: %d\n",i,f);// just for me to check//
        calculation = 1.00 / f;
        printf("Factorial calculation is %d! = %f\n", i, calculation);
    }
    return 0;
}

【问题讨论】:

  • 你似乎知道如何做阶乘,但你却卡在加法上?旁注,您的阶乘真的可以正常工作吗?那应该是unsigned long long f;uint64_t f; 否则会出现整数溢出。
  • 感谢您对巴马克的评论。我之前曾使用“+=”来尝试存储计算的总和,因为它通过循环,类似于下面的答案,但它只是由于某种原因不起作用。我想也许有另一种方式我应该这样做。我对编码很陌生,抱歉。感谢您提供有关变量分配的提示。
  • 更改为unsigned long long f;printf("Factorial of %d is: %llu\n",i,f)(取消注释)然后它应该打印与此一致的结果:en.wikipedia.org/wiki/Factorial

标签: c loops sum factorial


【解决方案1】:

您必须为 for 循环中的每个计算存储一个总和值。

#include<stdio.h>

int i, f = 1;
float calculation = 0;
int main() 
{
    for (i = 1; i <= 19; i++) 
    {
        f = f * i;
        //printf("Factorial of %d is: %d\n",i,f);// just for me to check//
        calculation += 1.00 / f;
    }
    printf("Factorial calculation is %d! = %f\n", i, calculation);
    return 0;
}

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
  • 谢谢 Nguyễn Ngọc Hùng Long。我曾尝试使用 '+=' 作为计算变量,但由于某种原因,我无法让它工作,所以我想我一定是做错了什么。
  • @StephNolan 你能分享你的代码吗?我的工作正常,我检查了programiz.com/c-programming/online-compiler 上的代码
猜你喜欢
  • 2021-07-04
  • 1970-01-01
  • 1970-01-01
  • 2011-10-17
  • 2017-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多