【算法设计与分析】—— n的阶乘问题(eg:求100的阶乘 结果中的所有位数都精确输出)
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的阶乘 结果中的所有位数都精确输出)相关推荐
- C++算法设计与分析例题代码(基础篇)
C++算法设计与分析例题代码 前言 一.求1/1!-1/3!+1/5!-1/7!+...+(-1)^(n+1)/(2n-1)! 二.一个数如果恰好等于它的因子之和(包括1,但不包含这个数本身),这个数 ...
- 【算法设计与分析】06 几类重要的函数
本篇文章中会用到上一篇文章的定理:[算法设计与分析]05 有关函数的渐进的界的定理 主要学习常见的一些函数的阶 1. 基本函数类 以下按阶的高低排序: 至少指数级: 2n, 3n, n!, - 多项式 ...
- 算法设计与分析(python版)-作业一
参考教材:算法设计与分析(Python版) 作者:王秋芬 1 . 容易 (4分)2 n=O(100n ^2) 错误 2 . 容易 (3分)10=θ(log10) 正确 3 . 容易 ( ...
- 算法设计与分析大师班
算法设计与分析大师班 算法和数据结构将帮助您破解编码面试(C/C++Java/Python)学习算法数据结构 此视频教程共12.0小时,中英双语字幕,画质清晰无水印,源码附件全 课程英文名:Intro ...
- 算法设计与分析基础-笔记-上
算法设计与分析基础 绪论 什么是算法 一系列解决问题的明确指令,对于符合一定规范的输入,能够在有限的时间内获得要求的输出. 例子:最大公约数:俩个不全为0 的非负整数 m m m和 n n n的最大公 ...
- 算法设计与分析课程的时间空间复杂度
算法设计与分析课程的时间空间复杂度: 总结 算法 时间复杂度 空间复杂度 说明 Hanoi $ O(2^n) $ $ O(n) $ 递归使用 会场安排问题 \(O(nlogn)\) \(O(n)\) ...
- 哈工大威海算法设计与分析_计算机算法设计与分析第一章 算法概述
晓强Deep Learning的读书分享会,先从这里开始,从大学开始.大家好,我是晓强,计算机科学与技术专业研究生在读.我会不定时的更新我的文章,内容可能包括深度学习入门知识,具体包括CV,NLP方向 ...
- PHP第五周答案,算法设计与分析第五周作业——Word Ladder
算法设计与分析第五周作业--Word Ladder 上周找了一道深度搜索优先搜索的算法题来做,于是这周就选了一道广度优先搜索算法题来试试手. 本周所选题目:原题目链接 题目详情 题目大意:给出一个字符 ...
- 太原理工大学linux与python编程r实验报告_太原理工大学算法设计与分析实验报告...
<太原理工大学算法设计与分析实验报告>由会员分享,可在线阅读,更多相关<太原理工大学算法设计与分析实验报告(12页珍藏版)>请在人人文库网上搜索. 1.本科实验报告课程名称: ...
最新文章
- VirtualBox中Ubuntu的全屏
- [leetcode] 230. Kth Smallest Element in a BST 找出二叉搜索树中的第k小的元素
- nginx(windows环境安装)
- gif透明背景动画_PS教程:把静态照片做成GIF放大动画效果
- 【人在运维囧途_14】打扫干净屋子再请客
- JVM中的本地内存追踪NMT(Native Memory Tracking)
- Photoshop制作漂亮白色荧光文字图片
- javac不是内部或外部命令,也不是可运行的程序 或批处理文件的细节问题(window10)
- b计划撸站--内容采集筛选
- 微机原理/汇编语言/8088知识总结
- 群晖服务器216j增加硬盘,群晖DS216j影视库搭建方法 | 群晖DS216j存储服务器怎么样_什么值得买...
- 在线运行Java代码获取APNIC中国区的ip段,用作绕过国内ip
- 普通人怎样投资区块链
- 思科曹图强:勒索软件将打破安全防御平衡
- 植入式营销--网络广告新玩法
- 神仙尬聊!哲学马云VS科技马斯克:生活就该每周工作12小时,开特斯拉玩遍三千城市
- VishwaCTF 2022 部分writeup
- showdoc windows 搭建_windows下安装showdoc
- 注册表禁用远程桌面服务器,注册表配置远程桌面终端服务修改远程桌面端口号...
- 5 技术管理之培训的方法
热门文章
- 求职_第1篇 程序设计基础及数据机构基础_第1章 数组
- 新技术:使用免费苹果账号申请 iOS 证书进行真机调试
- qt基于MVC架构的设计
- 触摸屏实验(触摸屏介绍+硬件设计+软件设计。注:软件部分代码过长,理解即可)
- admi后台 vue_vue-admin-template后台管理的权限
- Vue超出文本框显示省略号,鼠标滑入显示全部
- pe工程师是做什么的
- 语音质量评价方法-【音频质量专题】
- 工具变量法(instrumental variable method)
- Browserslist: caniuse-lite is outdated. Please run: npx ....