鱼C论坛

 找回密码
 立即注册
查看: 3640|回复: 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

能给个最佳嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

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

#include<stdio.h>

long long  jiecheng(int n)
{
    long long  t=1;
    for(int k=1;k<=n;k++) 
    {
         t*=k;
    }
    return t;    
}

long long  sum(int n)
{
    long long s = 0;
    int j=1;
    for (int i = 1; i <=n; i++)
    {
        s+=jiecheng(i)*j;
        j*=-1;
    }
    return s;
}
int main()
{
        int n = 15;      
        printf("%lld\n", sum(n));
        return 0;
       
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

使用道具 举报

发表于 2021-6-1 14:28:47 From FishC Mobile | 显示全部楼层
不是高数是函数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-1 16:33:50 | 显示全部楼层
long
factorial( int n){    
        int result = 1; 
        while( n>1 ){   
                result *=n;  
                n -=1;
        }
        return result;     
}

简单循环   

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-6-1 16:39:34 | 显示全部楼层
long
factorial( int n){    
     if( n<=0) 
        return 1;
  else   return  n*factorial(n-1) ;   //n不等于0 则一直进入函数    
      
}
//递归 ,尾部递归可以转换为简单循环
如传进去5    return  5*f(4) ,一直调用自己直到逼近某一 条件   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-1 19:40:45 | 显示全部楼层
程序没有错,只是S=15的时候数据溢出了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢解答  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

那个  就是不想用factorial   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-6-3 20:03:47 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

能给个最佳嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

感谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢 我再看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

感谢大佬的解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

我是想问阶乘这个定义函数是什么意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

这个你还是去求助大佬吧  我水平暂时还无法回答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 12:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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