末央& 2022-10-21 11:53 采纳率: 87.5%
浏览 45
已结题

关于C语言阶乘问题。,

今天遇到一到关于阶乘求和的问题,如下:

#include<stdio.h>
float fun(int n)
{
    int i;
    float s=0.0,k=1;
    for(i=1;i<=n;i++)
    {
        k=k/i;  //填空疑惑处,我刚开始填的是1/(k*i)
        s+=k;
    }
    return s;
}
int main()
{
    printf("result is %f",fun(6));  
    return 0;
}

我填的代码算出来是3点几,我刚开始是知道n! =n-1 ! * n这个公式的,那里的代码就是k每次都会算出一个分数的阶乘,所以我就根据每次分子是1,分母的阶乘是由n-1!*n可以算出来,但是结果却不对。

而我看了答案分析出他这里k/i的就是分子是上一个1/k-1!/i来算出下一个数字的阶乘,请问这里是不是因为,例如:1/2!转换为数学表达式是:1 / 1 * 2 ->C语言表达式:1 * 2 / 1 -> 2! / 1 ?

望解答!

  • 写回答

1条回答 默认 最新

  • X-道至简 2022-10-21 12:31
    关注

    k=k/i 就是递推式 相当于第一次K=1/1 第二次就是K=1/1/2 后面依次类推

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月20日
  • 已采纳回答 12月12日
  • 修改了问题 10月21日
  • 修改了问题 10月21日
  • 展开全部

悬赏问题

  • ¥15 3D多模态医疗数据集-视觉问答
  • ¥20 设计一个二极管稳压值检测电路
  • ¥15 内网办公电脑进行向日葵
  • ¥15 如何输入双曲线的参数a然后画出双曲线?我输入处理函数加上后就没有用了,不知道怎么回事去掉后双曲线可以画出来
  • ¥50 WPF Lidgren.Network.Core2连接问题
  • ¥15 soildworks装配体的尺寸问题
  • ¥100 有偿寻云闪付SDK转URL技术
  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp