说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

求解1000的阶乘

编辑:说三道四文库 发布时间:2017-10-23 11:42
HTML文档下载 WORD文档下载 PDF文档下载
要求1000的阶乘,要求标准库list实现,最好还能附上检验程序运行时间的函数
最好能在一分钟之内完成
谢了。
在 2 秒 钟之内可以完成

#include <stdio.h>
#include <mem.h>
#define ASIZE 8192
int main()
{
    int i,k,t,x=1000; //计算到1000
    int z[ASIZE];
    memset(z,0,sizeof(z)); z[0]=1;

    for(k=2; k<=x; k++)
     {
       t=0;
       for(i=0; i<ASIZE-1; i++)
        {
          t=z[i]*k+t;
          z[i]=t%10;
          t/=10;
        }
     }
    t=0;
    for(i=ASIZE-1;i>=0;i--)
     if(t||z[i])
     {
       printf("%d",z[i]);
       t=1;
     }
    return 0;
}

结果:
402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
非常感谢ybchen()的帮助,用C的memset的确能很好地解决这题。在下真的很佩服ybchen()的功力,再次感谢。
但能按照我的要求用C++和STL的LIST实现吗?
谢谢。
#include <iostream>
#include <iterator>
#include <list>
using namespace std;

int main()
{
   list<int> JC(1,1);
   list<int>::iterator BEG;
   for(int i=2;i<=1000;++i){
      int c=0;
      for(BEG=JC.begin();BEG!=JC.end();++BEG){
          *BEG= *BEG * i+c;
          c= *BEG/10;
          *BEG %=10;
      }
      while(c){
        JC.push_back(c%10);
        c/=10;
     }    
   }
   copy(JC.rbegin(),JC.rend(),ostream_iterator<int>(cout));
}


402387260077093773543702433923003985719374864210714632543799910429938512398629020592044208486969404800479988610197196058631666872994808558901323829669944590997424504087073759918823627727188732519779505950995276120874975462497043601418278094646496291056393887437886487337119181045825783647849977012476632889835955735432513185323958463075557409114262417474349347553428646576611667797396668820291207379143853719588249808126867838374559731746136085379534524221586593201928090878297308431392844403281231558611036976801357304216168747609675871348312025478589320767169132448426236131412508780208000261683151027341827977704784635868170164365024153691398281264810213092761244896359928705114964975419909342221566832572080821333186116811553615836546984046708975602900950537616475847728421889679646244945160765353408198901385442487984959953319101723355556602139450399736280750137837615307127761926849034352625200015888535147331611702103968175921510907788019393178114194545257223865541461062892187960223838971476088506276862967146674697562911234082439208160153780889893964518263243671616762179168909779911903754031274622289988005195444414282012187361745992642956581746628302955570299024324153181617210465832036786906117260158783520751516284225540265170483304226143974286933061690897968482590125458327168226458066526769958652682272807075781391858178889652208164348344825993266043367660176999612831860788386150279465955131156552036093988180612138558600301435694527224206344631797460594682573103790084024432438465657245014402821885252470935190620929023136493273497565513958720559654228749774011413346962715422845862377387538230483865688976461927383814900140767310446640259899490222221765904339901886018566526485061799702356193897017860040811889729918311021171229845901641921068884387121855646124960798722908519296819372388642614839657382291123125024186649353143970137428531926649875337218940694281434118520158014123344828015051399694290153483077644569099073152433278288269864602789864321139083506217095002597389863554277196742822248757586765752344220207573630569498825087968928162753848863396909959826280956121450994871701244516461260379029309120889086942028510640182154399457156805941872748998094254742173582401063677404595741785160829230135358081840096996372524230560855903700624271243416909004153690105933983835777939410970027753472000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
佩服!
菜鸟来学习了
你编译得到的文件如果为a.exe
a>output.txt
就把输出的结果保存到output.txt了
说一说算法思想,行吗?小弟没有领会到!谢谢!
// Factorial: N! , N <= 10000
#include <vector>
#include <cmath>
#include <algorithm>
#include <iostream>
#include <iomanip>

using namespace std;

void print4d(int d)
{
    cout << setw(4) << setfill('0') << d;
}
    
int main()
{
    cout << "Input N = ";
    int n;
    cin >> n;
    vector<int> veci;
    veci.push_back(1);
    for (int j = 1; j <= n; ++j) {
        int c = 0;
        for (vector<int>::iterator i = veci.begin(); i != veci.end(); ++i) {
            int p = *i * j + c; 
            c = p / 10000;
            *i = p - c * 10000;
        }
        if (c > 0) {
            veci.push_back(c);
        }
    }
    for_each(veci.rbegin(), veci.rend(), print4d);
    int digits = 4 * veci.size() + int(log10(double(*veci.rbegin()))) - 3;
    cout << "\nTotal: " << digits << " digits\n";
    veci.clear();
}
//抽抽热闹
又是要源程序的
算法不错。学习。
開眼界了,學習。
在http://591home.vicp.net/cgi-bin/lb5000/forums.cgi?forum=9看过了。:)
zhaohangcom(赵) :
你尝试过你的结果吗?

我觉得你的算法有问题,原因在于
if (c > 0) {
            veci.push_back(c);
        }

如果最后一次循环得到c=12
那你打印出来的前两位也是12,但事实上应该是21

只要在循环结束后把c从低位到高位放到vector也行,而且效率应该比我的好一点。
再做一下限制:
只能使用<IOSTREAM>和<LIST>
不能涉及迭代器的操作
不能涉及迭代器的操作——?不用迭代器如何使用list?


#include <iostream>
#include <list>
using namespace std;

int main()
{
   list<int> JC(1,1);
   list<int>::iterator BEG;
   int c=0;
   for(int i=2;i<=1000;++i){
      for(BEG=JC.begin();BEG!=JC.end();++BEG){
          *BEG= *BEG * i+c;
          c= *BEG/10;
          *BEG %=10;
      }
      while(c){
        JC.push_back(c%10);
        c/=10;
      }
   }

   list<int>::const_reverse_iterator Beg=JC.rbegin(),End=JC.rend();
   while(Beg!=End) cout<<*(Beg++);
}
真是人才啊!
菜鸟悄声的虚心的问:  算法思想!!!!!!!!!!!!!!!!
每个位只保存一个小于10的整数,大于10的分解成小于10的整数,比如123分解为1 2 3
佩服!
开眼界了~~
mem.h这个库在VC是不是调用不到,各位用的都是什么东东啊
我的意思是只用LIST进行存储,而不用LIST进行操作,当然大家可以不给源程序。谢谢
LIST进行存储,而不用LIST进行操作?
Why????
^-^
数据库未来的5大预测 华为王丰谈华为一体机三大优势 FusionCube SQL Server针对Windows集群加速 浏览器基准测试:IE11成绩惊人 移动开发工具访谈《近匠》第02期:梆梆安全——APP安全之道 罗永浩:ROM创业,锤子科技A轮融资7000万 独立开发者的自白:Objective-C最糟糕的13件事 回顾Google这一年——Android篇 百度手机卫士正式发布 “防吸费”功能全球首创 2013年平板电脑市场竞争回顾 Apple太阳能数据中心进展顺利,但却在税负减免上备受争议 一名开发者的年度回顾 智能手表Pebble明年初推应用商店 开发者今日起可提交应用 够快科技推出企业级云存储服务“够快云库” 项目开发中,质量和速度哪个更重要? 亚马逊AWS落地中国,云计算产业圈集体发力 Node.js 2013年大事记 【开源推荐】ThinkPHP:大道至简,让Web开发更简单 IE11中的WebGL探秘:渲染速度超Chrome 数据驱动智能:百度在计算广告学领域的技术突破 UX设计师和软件开发者,谁将是2014年的老大? 爸爸去哪儿:开发知名题材手游压力山大 多平台同步 谈IE11全新功能 高通副总裁沈劲:移动是产生变革的强大原动力 高性能、高流量Java Web站点打造的22条建议 云巅:第三代虚拟技术+搜索引擎+乐高理念打造分布式桌面云 Intel:从“芯”构建下一代数据中心 WhatsApp:50名员工,月4亿活跃用户,日160亿条消息和5亿张图片 三星Galaxy Gear智能手表失利 需改进的8个方面 IE11全新的F12开发人员工具详解 研发周报:为什么开发者担心将代码公布 Hadoop YARN的发展史与详细解析 在.net中如何获得数据库中的所有用户表的信息,以及......? 在线等!!菜鸟一问:用什么函数使‘空’返回为零,就像foxpro的iif... 如何实现两个form间参数的传递? 一个关于DBCHART的使用问题。 数据机构的一道题!~(队列) 求救高手?active dll的Ftp上传组件的问题?(100) TQuery返回的字段类型信息如何区分numeric还是float? 我感觉VC里最神秘的几块内容(至今也没搞懂) 在这里混了有段日子了 升星 散分!!(请版主别删) 欢迎大家加入我建的QQ群 请问一下各位是如何调用第三方的DLL。例如:华为DLL.清华深资DLL。等等。。。 QRBand能否自动换页的问题。 请问有哪位 有ACCP的的全套资料第一学期第一学年 资料 一个关treeview的问题 sql server有没有办法看一个image类型值是否有无? 嵌入到outlook控件的问题 一个奇怪的问题: 怎么老打不开数据库set db= new notesdatabase("","data.nsf")??? 如何调用DLL啊? JSP怎么样调用sessionbean? 如何在Cell单元格显示数据库中已image类型存放的图片?(急) php有什么好办法把mysql里面枚举型字段的各个项目读出来? easy problem 文件问题 在线等候 北京掌中仙境技术有限公司招聘程序开发人员 请问win2003中如何起用3d? 关于迭代开发模式 主菜单的字体怎么修改? C#中自动生成SQL语句(update,delete)是否并不怎么好呢? 关于在VC中开发数据库使用ORACLE的若干问题?(SQL SERVER 到 ORACLE转换的问题) 如果更新有外键约束的主键呢? 谁有播放*.dat的asp组件啊!~ 这是一个控件源码,为什么只有在运行时,才能显示控件的图形,请指教! 电脑一进系统就待机……sos 浅谈视图(Views) 本人急需自然景物的分形源程序(最好包括山水树),急!可加分 高分求免费电影下载网站,最好是一些提供最新电影的网站 请教axis的开始的安装配置问题,谢谢~ 如何用ASP实现往已经建好的表中添加新的字段? TQuery返回的字段类型信息如何区分numeric还是float? 为什么弹出来的菜单偏离我的点的位置很远? 高手请进!!! 用sqlDataAdapter自动产生的update,delete语句是否最优? 小问题,50分,我的CRichEditCtrl继承类为什么在输入汉字时不触发 WM_CHAR 消息!! 100分,如何将一个类实例存入数据库,并取回? JavaScript问题,请大家帮忙。 急,急,急!如何做一个循环让程序延迟3秒执行? 有意思的问题,请高手指教!(100*x) 如何根据条件来得到DataGrid需要显示的列!!! php运行环境配置 CSDN怎么总出错啊?ft... 有一事不解,进来看看吧,up有分 平行四边形ABCD,E、F分别是AB、AD中点,CE、CF分别交BD于H、G,求BH=HG=GD.图 一个令人讨厌的家伙用英语怎么说? 醉里吴音相媚好的醉里是什么意思? 不厌其烦、漫不经心、可怜巴巴,本文主要内容意思 telecommunications superhighway blessing or course是什么意思 醉里吴音相媚好的 相媚好啥意思 与可怜巴巴相近的词语都有什么 a degree course in Applied Thai Traditional Medicine怎么翻啊?请勿机译, 醉里吴音相媚好中的相媚好是什么意思? capstone是什么 有多少中国人或诺贝尔奖提名? 三角形ABC中角A.B.C所对的边分别为a.b.c,已知cosC=-1/4.1求sinC的值 2当a=2,2sinA=sinC时,求b及c的长 wa ka xi wa ki da o a na da 东风小学五年级买4只水壶,5把扫帚,共用去150.5元,六年级买同样的水壶4只扫帚8 把,共付出182元,每只水每只水壶和每把扫帚各多少元 不要方程 生男生女决定于夫妇中的丈夫,因为男性能产生x、y两种,女性只产生具有x染色体的一种卵细胞.这句话是对是错额...到底是对的还是错的!我都蒙了! duration什么意思duration of a house~意思就是说从房子建立到废弃的那段时间又没有什么地道的表达方式? 东风小学5年级买4只水壶,5把扫把共用去150.5元.六年级买同样的水壶4只,扫把8把,共用182元.每只水壶(↑接上面)和每把扫把各多少元? 关于专利权的判断题,专利权人的权利不包括专利权人为发明人,设计人时表明自己发明人,设计人.是对是错?答案给的是该说法正确.但是不太明白.这句话该怎么理解?专利权人是发明人或设计 苏州园林哪些美 我会在一个牌子上写着欢迎你用英语怎么说? 为什么生理盐水可以可减轻硝酸银腐蚀性 duration是什么意思 怎么美国申请summer college?都需要什么东西?拜托各位啦~! 在HCl气体溶于水后水的体积不变的情况下,如何计算30%盐酸的密度如果是那样的化任何浓度为30%的溶液密度都是一样的了? 11-9=1+1=2 12-9=2+1=3 13-9=3+1=4 第一个加数与被减数有什么联系?第二个加数为什么都是1呢? RMIT summer course我读的是RMIT的会计,我想暑假的时候那么长,不知道能不能修一门或两门课.但听说会计在暑假的时候不会开设主课程,只有选修的.但本人的选修都结束了,很想在暑假修主课.不知 30%盐酸密度是多少? 石字为什么要加一点 A summer course为题的做英语作文,十万火急!写一篇自己经历过的暑假课程,要写出暑假课程利与弊,课程的收获.要有自己的建议与感悟!10句话左右. 我用4017做了一个双稳态电路,它会受到220V交流电影响的?我做了这个双稳态电路,不知什么原因?家里的电灯开或关都经常到它的不稳定, 11-9=1+1=2 12-9=2+1=3 13-9=3+1=4 问题是 第一个加数与被减数有什么联系? 第二个 NK细胞为什么能杀伤“异常”细胞,而不杀伤正常细胞? 用IC4017做的指示流水灯12脚要不要接电路. 英语翻译沙子大人, 四字词意思 如何用CD4017做一个四分频电路? 石加一占 什么字 表扬意思的四字词 1、If you don't like what he said,just r______.2、Although they are twins,they behave d_______.3、Two days later,the meat went bad and it produced an unpleasant s__________. 已知a^2+b^2=1 b^2+c^2=2 a^2+c^2=2 则ac+bc+ac最小值为 有哪两种意思 《了不起的盖茨比》(The great gatsby )英文精校版 TXT附件即可英文精校就行 什么格式都可以 谢 .4(m+n)^2*(m+n)^3-7(m+n)(m+n)^4+5(m+n)^5= "分外"的两种意思,谁知道 quickshe doesn't come to the party today ,she _____busyA,maybe B,may be C.must D.may a+b+c=13,a*b*c=27,b^2=ac,求a,b,c 结果的两种意思是什么 第30题快! BE QUICK! 徽章的英文是什么 指那打那、指哪打哪两种意思我想知道这两种意思的不同含义,指那打那跟指哪打哪到底有哪些地方是不一样的. quick!What does it feel like( ) hiking ( ) fine weather?A going; in soB to go; in such a C going; on so D to go ;in such(不是“feel like doing sth ”,)You haven't forgotten to pay him,have you?-____,but I'll remember _____ him tomorrow.A yes,payi 发行股票的面值收入应计入哪个会计科目中? have a quick的中文 一道初二英语题,关于反意疑问句的(quick~~)You are never too young to start doing things,( ) ( )? 装“的”可怜巴巴还是装“得”可怜巴巴比较恰当? Be quick!We don't have e ___ time.怎么填? 请问碳化的木头和竹子,在干燥的状态下导电吗? 舟夜书所见--改写成文章把这首诗改写成文章,500字左右,一定要是文章 此句中course怎么理解?是选择or过程or方法还是别的意思?Suitable habitats for gray wolves have greatly diminished in area.In spite of this fact,the most sensible course would be to refrain from reestablishing gray wolves in places whe 竹醋液真的是竹子炭化过程中得到的液体吗?它是不是有多少纯度的?怎样的竹醋液才是好的? 联合国促国际合作防陨石撞地球日本推行“安倍经济学”一年挑战犹存何亚非:美国亚太再平衡战略的经济抓手香港保安局局长:马尼拉人质事件处理步官员“一票否决”制被指滥用 想装什么养老金双轨制改革几无进展 并轨试点已人民日报:年底需防止各地为GDP\"教育经费管理存在多项问题 回应质疑制北京雾霾刚去 寒衣节不少市民当街焚烧浙江部分行政区划调整 绍兴县上虞市撤菲律宾副总统:人质事件总统不可代表整曝汪峰或哈林明年退出好声音 女导师不停摆还卖票3万人受困 台高铁再“出包民进党台北市长初选 五月天主唱阿信被田径队进行备战里约动员 刘翔红军装亮瞭望:把巩固党的执政基础作为政治责任儿子常在小区网吧过夜 其母向警方投诉广东400村官旁听贪贿案庭审 纪委书经济复苏强于预期 10月PMI创18柯文哲批民进党“乱邦” 苏贞昌:不必苗族大妈不识总书记:“怎么称呼您?”短线炒股的纪律 ,遵守等着赚翻天!最黑暗时期正在来临震荡会有不改涨机器人科普启智教育走进莲池幼儿园A股预言帝:下周股市或下跌!为什么现在重启IPO?券商崛起已为I翡翠太美丽--它是翡翠中的另类一颗顶非农超预期震惊四座,12月加息可能性翡翠太美丽--翡翠之美,无需故作姿态“花都”巴黎渐露圣诞气息巴西矿区水坝溃决环境灾害严重 至少1翡翠太美丽--他拿2毛钱的假货,骗了茶室空间资讯传递,心灵的交流河北又见冬前雪 看看各地的雪有多大克志书记的“河北时间”·走访调研篇康保县普降大雪 有关部门动员开展除雪天瑞之路:铸造世纪吉祥钟之巧制砂型科宝丰县人民医院践行社会主义核心价值观宝丰县林业部门展开“雷霆行动”保野生宝丰县人民医院免费对糖尿病人做眼底视《红楼梦》连环画法文版背后的中法缘金门民众看“习马会”:两岸接触越多
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘