鱼C论坛

 找回密码
 立即注册
查看: 4140|回复: 15

[已解决]使用C语言编写程序求取1-2!+3!-4!+5!-6!...+15! 的和,并打印最终结果。

[复制链接]
发表于 2021-6-1 12:05:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
int jiecheng(int n)
{
        if (n == 0)
        {
                return 1;
        }
        else
        {
                return n * jiecheng(n - 1);
        }
}
int sum(int n)
{
        int i,s;
        s = 0;
        for (i = 1; i <=n; i++)
        {
                if (i % 2 == 1)
                {
                        s = s + jiecheng(i);
                }
                else
                {
                        s = s - jiecheng(i);
                }
        }
        return s;
}
int main()
{
        int n = 15;       
        printf("%d", sum(n));
        return 0;
       
}
错哪了?
最佳答案
2021-6-3 20:08:08

能给个最佳嘛
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-6-1 12:18:40 From FishC Mobile | 显示全部楼层
本帖最后由 wp231957 于 2021-6-1 15:44 编辑

阶乘那个明显不对
我觉得不用递归更简单一些



  1. #include<stdio.h>

  2. long long  jiecheng(int n)
  3. {
  4.     long long  t=1;
  5.     for(int k=1;k<=n;k++)
  6.     {
  7.          t*=k;
  8.     }
  9.     return t;   
  10. }

  11. long long  sum(int n)
  12. {
  13.     long long s = 0;
  14.     int j=1;
  15.     for (int i = 1; i <=n; i++)
  16.     {
  17.         s+=jiecheng(i)*j;
  18.         j*=-1;
  19.     }
  20.     return s;
  21. }
  22. int main()
  23. {
  24.         int n = 15;      
  25.         printf("%lld\n", sum(n));
  26.         return 0;
  27.       
  28. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-6-1 14:28:00 From FishC Mobile | 显示全部楼层
能解释一下,jiecheng那个高数的意思吗?新鱼油问
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-1 14:28:47 From FishC Mobile | 显示全部楼层
不是高数是函数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-1 16:33:50 | 显示全部楼层
  1. long
  2. factorial( int n){   
  3.         int result = 1;
  4.         while( n>1 ){   
  5.                 result *=n;  
  6.                 n -=1;
  7.         }
  8.         return result;     
  9. }
复制代码

简单循环   

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-6-1 16:39:34 | 显示全部楼层
  1. long
  2. factorial( int n){   
  3.      if( n<=0)
  4.         return 1;
  5.   else   return  n*factorial(n-1) ;   //n不等于0 则一直进入函数   
  6.       
  7. }
复制代码

//递归 ,尾部递归可以转换为简单循环
如传进去5    return  5*f(4) ,一直调用自己直到逼近某一 条件   
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-1 19:40:45 | 显示全部楼层
程序没有错,只是S=15的时候数据溢出了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-3 20:02:44 | 显示全部楼层
wp231957 发表于 2021-6-1 12:18
阶乘那个明显不对
我觉得不用递归更简单一些

谢谢解答  
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-3 20:03:16 | 显示全部楼层
最强废铁h 发表于 2021-6-1 14:28
能解释一下,jiecheng那个高数的意思吗?新鱼油问

那个  就是不想用factorial   
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-3 20:03:47 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-3 20:08:08 | 显示全部楼层    本楼为最佳答案   

能给个最佳嘛
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-3 20:11:55 | 显示全部楼层
万千只cnm 发表于 2021-6-1 16:39
//递归 ,尾部递归可以转换为简单循环
如传进去5    return  5*f(4) ,一直调用自己直到逼近某一 条件 ...

感谢大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-3 20:12:25 | 显示全部楼层
longzhanyuye 发表于 2021-6-1 19:40
程序没有错,只是S=15的时候数据溢出了。

谢谢 我再看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-3 20:14:27 | 显示全部楼层
wp231957 发表于 2021-6-1 12:18
阶乘那个明显不对
我觉得不用递归更简单一些

感谢大佬的解答
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-3 20:16:27 | 显示全部楼层
Tiz 发表于 2021-6-3 20:03
那个  就是不想用factorial

我是想问阶乘这个定义函数是什么意思
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-3 20:25:18 | 显示全部楼层
最强废铁h 发表于 2021-6-3 20:16
我是想问阶乘这个定义函数是什么意思

这个你还是去求助大佬吧  我水平暂时还无法回答
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-12 19:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表