| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8329 人关注过本帖, 1 人收藏
标题:[原创]1000!.低效率易懂版.谢谢各位指正
取消只看楼主 加入收藏
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
结帖率:50%
收藏(1)
 问题点数:0 回复次数:17 
[原创]1000!.低效率易懂版.谢谢各位指正
*/ --------------------------------------------------------------------------------------
*/ 出自: 编程中国 http://www.bc-cn.net
*/ 作者: nuciewth E-mail:wth870628@163.com QQ:314218584
*/ 时间: 2007-10-20 编程论坛首发
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------

/*
1000!的阶乘速度还算可以忍受了,当然和孔明,飞燕的大数阶乘的效率是不能比的了.
但理解起来比较方便.所以帖出来玩玩.大家给点意见吧.数组可以再定义大点,算更大的数要好
久才出结果有什么BUG请大家批评和指正.谢谢各位了.
*/

/**
* @(#)factorial.cpp *
*
* @author nuciewth
* @version 1.00 2007/10/20
*/

#include<stdio.h>

int main()
{
int data[20000]={1,1,0}; //初始化,数组从1开始记数
int num; //阶乘大小
int digit=1; //每次阶乘得出结果的位数
scanf("%d",&num);
for(int i=1;i<=num;i++)
{
for(int j=1;j<=digit;j++)//先做每一位与i的乘积放在一个数组空间中
{
data[j]*=i;
}
for(int j=1;j<=digit;j++)//调整个元素的值,使之在0--9之间
{
if(data[j]>9)
{
for(int k=1;k<=digit;k++)
{
if(data[digit]>9) //位数增加
{
digit++;
}
data[k+1]+=data[k]/10;//调整
data[k]%=10;
}
}
}
}
printf("%d!=",num);
for(int j=digit;j>0;j--)
{
printf("%d",data[j]);
}
printf("\n");
return 0;
}

搜索更多相关主题的帖子: 易懂 效率 
2007-10-20 20:53
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
呵呵
我喜欢这样写.呵呵.可以自己定义在外面的.

倚天照海花无数,流水高山心自知。
2007-10-20 21:40
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
就应该让他们这样.这样他们才会看一眼啦
哎其实写这样的没什么.只是因为比较容易懂,所以贴出来.

倚天照海花无数,流水高山心自知。
2007-10-20 21:47
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
我知道,效率很差,孔明也是说说而已.
飞燕姐姐不必当真.

倚天照海花无数,流水高山心自知。
2007-10-20 21:53
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
飞燕姐姐的论坛进不去了.怎么回事?

写来玩的.声明了效率不高.

倚天照海花无数,流水高山心自知。
2007-10-20 21:58
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

她几岁了

倚天照海花无数,流水高山心自知。
2007-10-20 22:11
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
貌似她88年的,比偶小一岁.
我不在这灌水了.
mp3aaa
给我的代码发表一下意见.

倚天照海花无数,流水高山心自知。
2007-10-20 22:18
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

把数组加长试试.


倚天照海花无数,流水高山心自知。
2007-10-20 22:46
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

多加几个0都行.
怎么可能闪了.


倚天照海花无数,流水高山心自知。
2007-10-20 22:59
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
C-FREE
估计你用的编译器限制数组空间的大小.

倚天照海花无数,流水高山心自知。
2007-10-20 23:04
快速回复:[原创]1000!.低效率易懂版.谢谢各位指正
数据加载中...
 
   



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

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