n的阶乘问题(eg:求100的阶乘 结果中的所有位数都精确输出)

  • 算法题目
  • 算法分析
  • 代码实现
  • 结果示例

算法题目

  • 其实这个求n的阶乘问题,我们在刚刚学习c语言的时候,应该就有大致的了解过了,那个时候我们可能会设置一个循环变量,或者使用递归方法,但是当n比较大时,我们会怎么做呢?

  • 本文主要是将结果存放在int类型的数组中,然后每个单元存放6位数,整体思想还是采用我们小学时的竖乘法。

    戳视频链接:n的阶乘问题视频讲解

    再次声明:因为我本人主要是录着玩玩的,所以讲解时并没有备稿~

算法分析

  • 输出结果时注意格式的控制,尤其是关于0的问题,因为int和char不太一样,如果结尾6个0,不控制好格式的话,可能就只剩下一个0了!!!

  • 分析中,书上有一个地方印刷错误,应该是699238,不是699263!!!

  • 竖式乘法我大致画了一个图帮助大家理解:



代码实现

#include<stdio.h>
//求n!
int main()
{int s[256];   //用来存放运算结果int n;        //用来输入求谁的阶乘int d;        //用来表示进位int b;        //用来表示临时结果int m=1;      //用来表示占用数组的单元个数int i,j,k;    //循环变量   i表示运算数循环变量   j表示运算结果数组循环变量   k表示输出控制循环变量s[1]=1;printf("请输入你想求哪个数(n)的阶乘:\n");scanf("%d",&n);for(i=2;i<=n;i++){d=0;for(j=1;j<=m;j++){b=s[j]*i+d;s[j]=b%1000000;d=b/1000000;}if(d!=0){m++;s[m]=d;}}printf("%d ",s[m]);for(k=m-1;k>=1;k--)printf("%06d ",s[k]);    //因为int不比char,所以控制0需要注意return 0;
}

结果示例

  • 示例一
  • 示例二
  • 示例三

【算法设计与分析】—— n的阶乘问题(eg:求100的阶乘 结果中的所有位数都精确输出)相关推荐

  1. C++算法设计与分析例题代码(基础篇)

    C++算法设计与分析例题代码 前言 一.求1/1!-1/3!+1/5!-1/7!+...+(-1)^(n+1)/(2n-1)! 二.一个数如果恰好等于它的因子之和(包括1,但不包含这个数本身),这个数 ...

  2. 【算法设计与分析】06 几类重要的函数

    本篇文章中会用到上一篇文章的定理:[算法设计与分析]05 有关函数的渐进的界的定理 主要学习常见的一些函数的阶 1. 基本函数类 以下按阶的高低排序: 至少指数级: 2n, 3n, n!, - 多项式 ...

  3. 算法设计与分析(python版)-作业一

    参考教材:算法设计与分析(Python版)         作者:王秋芬 1 . 容易 (4分)2 n=O(100n ^2) 错误 2 . 容易 (3分)10=θ(log10) 正确 3 . 容易 ( ...

  4. 算法设计与分析大师班

    算法设计与分析大师班 算法和数据结构将帮助您破解编码面试(C/C++Java/Python)学习算法数据结构 此视频教程共12.0小时,中英双语字幕,画质清晰无水印,源码附件全 课程英文名:Intro ...

  5. 算法设计与分析基础-笔记-上

    算法设计与分析基础 绪论 什么是算法 一系列解决问题的明确指令,对于符合一定规范的输入,能够在有限的时间内获得要求的输出. 例子:最大公约数:俩个不全为0 的非负整数 m m m和 n n n的最大公 ...

  6. 算法设计与分析课程的时间空间复杂度

    算法设计与分析课程的时间空间复杂度: 总结 算法 时间复杂度 空间复杂度 说明 Hanoi $ O(2^n) $ $ O(n) $ 递归使用 会场安排问题 \(O(nlogn)\) \(O(n)\) ...

  7. 哈工大威海算法设计与分析_计算机算法设计与分析第一章 算法概述

    晓强Deep Learning的读书分享会,先从这里开始,从大学开始.大家好,我是晓强,计算机科学与技术专业研究生在读.我会不定时的更新我的文章,内容可能包括深度学习入门知识,具体包括CV,NLP方向 ...

  8. PHP第五周答案,算法设计与分析第五周作业——Word Ladder

    算法设计与分析第五周作业--Word Ladder 上周找了一道深度搜索优先搜索的算法题来做,于是这周就选了一道广度优先搜索算法题来试试手. 本周所选题目:原题目链接 题目详情 题目大意:给出一个字符 ...

  9. 太原理工大学linux与python编程r实验报告_太原理工大学算法设计与分析实验报告...

    <太原理工大学算法设计与分析实验报告>由会员分享,可在线阅读,更多相关<太原理工大学算法设计与分析实验报告(12页珍藏版)>请在人人文库网上搜索. 1.本科实验报告课程名称: ...

最新文章

  1. VirtualBox中Ubuntu的全屏
  2. [leetcode] 230. Kth Smallest Element in a BST 找出二叉搜索树中的第k小的元素
  3. nginx(windows环境安装)
  4. gif透明背景动画_PS教程:把静态照片做成GIF放大动画效果
  5. 【人在运维囧途_14】打扫干净屋子再请客
  6. JVM中的本地内存追踪NMT(Native Memory Tracking)
  7. Photoshop制作漂亮白色荧光文字图片
  8. javac不是内部或外部命令,也不是可运行的程序 或批处理文件的细节问题(window10)
  9. b计划撸站--内容采集筛选
  10. 微机原理/汇编语言/8088知识总结
  11. 群晖服务器216j增加硬盘,群晖DS216j影视库搭建方法 | 群晖DS216j存储服务器怎么样_什么值得买...
  12. 在线运行Java代码获取APNIC中国区的ip段,用作绕过国内ip
  13. 普通人怎样投资区块链
  14. 思科曹图强:勒索软件将打破安全防御平衡
  15. 植入式营销--网络广告新玩法
  16. 神仙尬聊!哲学马云VS科技马斯克:生活就该每周工作12小时,开特斯拉玩遍三千城市
  17. VishwaCTF 2022 部分writeup
  18. showdoc windows 搭建_windows下安装showdoc
  19. 注册表禁用远程桌面服务器,注册表配置远程桌面终端服务修改远程桌面端口号...
  20. 5 技术管理之培训的方法

热门文章

  1. 求职_第1篇 程序设计基础及数据机构基础_第1章 数组
  2. 新技术:使用免费苹果账号申请 iOS 证书进行真机调试
  3. qt基于MVC架构的设计
  4. 触摸屏实验(触摸屏介绍+硬件设计+软件设计。注:软件部分代码过长,理解即可)
  5. admi后台 vue_vue-admin-template后台管理的权限
  6. Vue超出文本框显示省略号,鼠标滑入显示全部
  7. pe工程师是做什么的
  8. 语音质量评价方法-【音频质量专题】
  9. 工具变量法(instrumental variable method)
  10. Browserslist: caniuse-lite is outdated. Please run: npx ....