| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 972 人关注过本帖
标题:n!怎么编写啊~~~写了半天都没写出来
只看楼主 加入收藏
w2239348
Rank: 2
等 级:论坛游民
帖 子:22
专家分:11
注 册:2011-3-30
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:15 
n!怎么编写啊~~~写了半天都没写出来
求解!!
2011-03-30 17:11
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:2 
程序代码:
#include <stdio.h>

int main (void) {

        int n;
        long int jc (int n);
        printf ("Enter a digit:");
        scanf ("%i",&n);
        printf ("%i! is %i\n",n,jc(n));
        return 0;

}
long int jc (int n) {
        long int result;
        if(n==0) {
                return result=1;
        }else {
                return result=n*jc(n-1);
        }
}

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-30 17:24
w2239348
Rank: 2
等 级:论坛游民
帖 子:22
专家分:11
注 册:2011-3-30
收藏
得分:0 
能不能给个简单点的~~我还是个初学者
2011-03-30 17:26
w2239348
Rank: 2
等 级:论坛游民
帖 子:22
专家分:11
注 册:2011-3-30
收藏
得分:0 
#include<stdio.h>
void main()
{int a,b,s,n;
s=1;
scanf("%d",&a);
for(n=1;n<=a;n++)
s=s*n;
printf("%d\n",s);
}

这个能算是 n! 吗???
2011-03-30 17:28
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
以下是引用w2239348在2011-3-30 17:28:09的发言:

#include<stdio.h>
void main()
{int a,b,s,n;
s=1;
scanf("%d",&a);
for(n=1;n<=a;n++)
s=s*n;
printf("%d\n",s);
}

这个能算是 n! 吗???

算法不一样, 你这个也可以。
如果结果过大的话, 也许会溢出, 所以s要用long型,或者long long

[ 本帖最后由 ansic 于 2011-3-30 17:31 编辑 ]

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-30 17:30
vandychan
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
注 册:2010-8-20
收藏
得分:2 
ansic很活鱼

到底是“出来混迟早要还”还是“杀人放火金腰带”?
2011-04-01 11:33
dengjinbao
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:64
专家分:119
注 册:2011-3-22
收藏
得分:2 
#include <stdio.h>
int main()
{
    static long sum=1;
    int n,i;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        sum=sum*i;
    }
    printf ("%d! is %d\n",n,sum);
        return 0;

}
2011-04-01 12:38
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
以下是引用vandychan在2011-4-1 11:33:18的发言:

ansic很活鱼

想吃鱼的时候, 别忘了我哟~~

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-01 12:51
爱海松涛
Rank: 3Rank: 3
来 自:安徽合肥
等 级:论坛游侠
帖 子:120
专家分:197
注 册:2011-2-25
收藏
得分:2 
#include "stdio.h"
void main()
{
long   p=1,i=1 ,sum=0;
int n;
clrscr();
printf ("enter n:\n");
scanf("%d",&n);  
while (i<=n)
   {
     p=p*i;
     
     i=i+1;
    }
printf("p=%ld\n",p);
getchar();getchar();
}
2011-04-01 16:56
ericj2ee
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2011-4-1
收藏
得分:2 
最好递归实现
2011-04-01 16:57
快速回复:n!怎么编写啊~~~写了半天都没写出来
数据加载中...
 
   



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

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