| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 935 人关注过本帖
标题:N! 问题
只看楼主 加入收藏
swiminfire
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2005-8-11
收藏
 问题点数:0 回复次数:21 
N! 问题
#include<stdio.h>
main()
{
int i,k;
long a=1;
printf("n!:");
scanf("%d",&k);
for(i=0;i<k;i++)
{
for(k=k;k>0;k--)
{
a*=k;
}
}
printf("%d\n",a);
getch();
}

代码在运行到 7!还是8!以后的时候开始出现错误,希望高人指点
搜索更多相关主题的帖子: long include 
2006-09-16 23:09
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用swiminfire在2006-9-16 23:09:39的发言:
#include<stdio.h>
main()
{
int i,k;
long a=1;
printf("n!:");
scanf("%d",&k);
for(i=0;i<k;i++) //纯属多余,当内循环执行一次的时候,k=0,当然会跳出外循环了.
{
for(k=k;k>0;k--)
{
a*=k;
}
}
printf("%d\n",a);
getch();
}

代码在运行到 7!还是8!以后的时候开始出现错误,希望高人指点

就一个:
for(i=1;i<=k;i++)
{
a*=i;
}
printf("k!=%ld\n",a);


倚天照海花无数,流水高山心自知。
2006-09-16 23:14
swiminfire
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2005-8-11
收藏
得分:0 

谢谢!
但是我发现我问题在哪了
是在我的输出,%D范围太小,当到8!是出现溢出。所以老出错
谢谢,用你的方法可以,用我的方法也可以。
你的比较U。


Get in first, and then word your ways out ! BY KIKI
2006-09-16 23:37
303770957
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:838
专家分:2125
注 册:2005-9-10
收藏
得分:0 

♂ 死后定当长眠,生前何须久睡。♀
2006-09-17 14:09
dlnhsr
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-6-5
收藏
得分:0 
以下是引用swiminfire在2006-9-16 23:09:39的发言:
#include<stdio.h>
main()
{
int i,k;
long a=1;
printf("n!:");
scanf("%d",&k);
for(i=0;i<k;i++)
{
for(k=k;k>0;k--)
{
a*=k;
}
}
printf("%d\n",a); //定义时a是long,这里应该改成"%ld",就好了
getch();
}

代码在运行到 7!还是8!以后的时候开始出现错误,希望高人指点


2006-09-17 14:26
ligt0610
Rank: 1
等 级:新手上路
帖 子:204
专家分:5
注 册:2006-6-29
收藏
得分:0 
以下是引用swiminfire在2006-9-16 23:37:45的发言:

谢谢!
但是我发现我问题在哪了
是在我的输出,%D范围太小,当到8!是出现溢出。所以老出错
谢谢,用你的方法可以,用我的方法也可以。
你的比较U。

整数范围的话8!还不至于会溢出的
好象是13才开始溢出吧 如果没有记错的话


通过不断的学习与思考才是提高自己能力的最好途径。。。。。。。
2006-09-17 20:32
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
用数组可以 求到多少啊

羊肉串 葡萄干 哈密瓜!!
2006-09-17 21:32
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用ligt0610在2006-9-17 20:32:42的发言:

整数范围的话8!还不至于会溢出的
好象是13才开始溢出吧 如果没有记错的话

8!==40320


13!==6227020800

[此贴子已经被作者于2006-9-17 21:36:28编辑过]


羊肉串 葡萄干 哈密瓜!!
2006-09-17 21:35
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
数组 最多能定义多大的数组啊?

羊肉串 葡萄干 哈密瓜!!
2006-09-17 21:40
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
自己定义一下试试,用不同的编译器测试一下是多少.看多大的时候编译器会报错或警告.

倚天照海花无数,流水高山心自知。
2006-09-17 21:42
快速回复:N! 问题
数据加载中...
 
   



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

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