| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3463 人关注过本帖
标题:求助,C语言编写求值1!+3!+5!....+n!
只看楼主 加入收藏
wxjeacen
Rank: 7Rank: 7Rank: 7
等 级:禁止访问
帖 子:1291
专家分:628
注 册:2009-3-22
收藏
得分:0 
http://

早就有lib出来了。 for BigInteger.

生命不熄,战斗不止.
2009-08-06 14:52
guoweiyan
Rank: 2
等 级:论坛游民
帖 子:7
专家分:10
注 册:2009-8-3
收藏
得分:0 
#define N 4
#include "stdio.h"
void main()
{
    int i,n,k=1,sum=0;
    for(n=1;n<=N;n++)
    {k*=n;           //求第n阶乘n!
    sum+=k;}         //求阶乘1!+2!+...+n!
         
    printf("%d\n",k);   
    printf("%d\n",sum);
}
数据类型和N根据你的需要可以改。看看是不是你想要的
2009-08-06 14:56
CrystalFan
Rank: 8Rank: 8
来 自:江苏南京
等 级:蝙蝠侠
帖 子:187
专家分:802
注 册:2009-7-30
收藏
得分:0 
回复 7楼 wxjeacen

BlueGuy是谁?
比我写得好的多了去了。
算法这种东西,无止境的。
我只是一个初学者。
而且回答论坛问题,重在提供思想,略作指导。
我已经好久没研究算法了,不足之处还请见谅。
2009-08-06 15:09
CrystalFan
Rank: 8Rank: 8
来 自:江苏南京
等 级:蝙蝠侠
帖 子:187
专家分:802
注 册:2009-7-30
收藏
得分:0 
回复 9楼 wxjeacen

那个附件输出好像有省略低位(末尾)的0。如20!少了3个0。
2009-08-06 15:36
wlsj
Rank: 2
等 级:论坛游民
帖 子:49
专家分:28
注 册:2009-5-18
收藏
得分:0 
菜鸟,学习来了


2009-08-06 16:17
robbenmessi
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2008-7-23
收藏
得分:0 
刚学完函数,试试用函数调用做,呵呵


#include<stdio.h>
void main()
{
    int i,c=0,n;
    printf("please enter n:");
    scanf("%d",&n);
    int Factorial(int n);
    for(i=1;i<=n;i++)
    {
        c=c+Factorial(i);
    }
    printf("The answer is:%d\n",c);
}
int Factorial(int n)
{
    int z;
    if(n==0||n==1)
         z=1;
    else
    {
        z=n*Factorial(n-1);
    }
    return z;
}

[ 本帖最后由 robbenmessi 于 2009-8-6 19:33 编辑 ]
2009-08-06 19:28
kimteahee
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2009-8-6
收藏
得分:0 
回复 16楼 robbenmessi

您这个做的是1!+2!+3!...+n!的值
2009-08-07 11:41
robbenmessi
Rank: 1
等 级:新手上路
帖 子:11
专家分:1
注 册:2008-7-23
收藏
得分:0 
回复 17楼 kimteahee

#include<stdio.h>
void main()
{
    int i,c=0,n;
    printf("please enter n:");
    scanf("%d",&n);
    int Factorial(int n);
    for(i=1;i<=n;i+=2)
    {
        c=c+Factorial(i);
    }
    printf("The answer is:%d\n",c);
}
 
int Factorial(int n)
{
    int z;
    if(n==0||n==1)
         z=1;
    else
    {
        z=n*Factorial(n-1);
    }
    return z;
}
 
 
 
 
把i++改成i+=2即可哈哈,看错了!sorry

[ 本帖最后由 robbenmessi 于 2009-8-7 18:58 编辑 ]
2009-08-07 18:56
wavelee
Rank: 1
等 级:新手上路
帖 子:9
专家分:8
注 册:2009-8-8
收藏
得分:0 
  #include"stdio.h"
long double fun(int n);
void main()
{
long double sum=0;
int input,i = 1;
scanf("%d",&input);
for(;i<=input;i=i+2)
    {
    sum = sum + fun(i);
    }
printf("%Lf\n",sum);
}
long double fun(int n)
{
    if(n>1)
        return n*fun(n-1);
     else
         return 1;
}
2009-08-08 12:58
paocai
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2009-3-7
收藏
得分:0 
LZ  
如果 n太大, 那你就需要开辟好多个寄存器组了。
2009-08-08 15:14
快速回复:求助,C语言编写求值1!+3!+5!....+n!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023048 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved