先来复习一下小学数学

大家还记不记得小学算多位数的乘法是怎么算的?

卖个关子,大家一定要好好想想!

好了,别管到底还能不能想起来我们都要一块复习一下:

我们借助一下源自百度的图片 来复习下

相信大家都不陌生吧

好了,现在我们就开始办正事了

话不多说,我们直接看代码。具体解释会在注释中,如果有什么要补充的记得评论区留言

#include "stdio.h"
#include "string.h"
#define MAX 10000//结果最大位数,可以自行扩大·以扩大范围
int f[MAX];//定义存储各位的数组
void Arr_reset(int a[], int m, int n)//数组初始化函数
{
int i;
for (i = m; i <= m; i++)
{
a[i] = 0;
}
}
int main(void)
{
int i, j, n;
printf("Enter n:");
scanf("%d", &n);
Arr_reset(f, 0, (sizeof(f) / sizeof(int))); //对数组进行初始化
f[0] = 1;//初始化数组。可以理解为更改数组为1的阶乘
for (i = 2; i <= n; i++)
{
//乘以 i
int c = 0;
for (j = 0; j < MAX; j++) //最不易理解的
{
int s = f[j] * i + c;//可以理解为分离每一位,并继续往下计算下一位
f[j] = s % 10;//可以参考上面的图片,数的顺序是反过来的
c = s / 10;//方便 下面输出数 ,因为最右边的 一位 肯定是 大于 0的,而且 后面全为0
//算出的 s 是单位数时,会连续覆盖 f[0]
//否则一个多位数会倒过来存储,如 123,f[0]存 3,f[1]存 2,f[3]存 1
}
}
for (j = MAX - 1; j >= 0; j--)//查找 结果的开头 ,
if (f[j])
break;
for (i = j; i >= 0; i--)//直接输出即可
printf("%d", f[i]);
printf("\n");
return 0;
}
下面我们来看试运行结果

OK,今天就到这里

后期会持续更新,敬请期待

n阶高精度乘法,(求高阶阶乘)的更多相关文章

  1. Kotlin的高阶函数和常用高阶函数

    Kotlin的高阶函数和常用高阶函数 文章来源:企鹅号 - Android先生 高阶函数的定义 将函数当做参数或者是返回值的函数 什么是高阶函数 可以看看我们常用的 函数: 首先我们可以知道, 是 的 ...

  2. LightOJ 1024 Eid(高精度乘法+求n个数最小公约数)

    题目链接:https://vjudge.net/contest/28079#problem/T 题目大意:给你n个数求这些数的最小公倍数(约数). 解题思路:还太菜了,看了别人的题解才会写,转自这里, ...

  3. 高阶函数HOF和高阶组件HOC(Higher Order Func/Comp)

    一.什么是高阶函数(组件),作用是什么? 子类使用父类的方法可以通过继承的方式实现,那无关联组件通信(redux).父类使用子类方法(反向继承)呢 为了解决类(函数)功能交叉/功能复用等问题,通过传入 ...

  4. 高精度算法求n阶阶乘

    1 #include "stdio.h" 2 #include "String.h" 3 #define MAX 10000 4 int f[MAX]; 5 v ...

  5. 老师博客copy -高阶函数2

    新闻 管理   Py西游攻关之函数   一 函数是什么? 函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,具体区别,我们后面会讲,编程中的函数在英文中也有很多不同的叫法.在B ...

  6. Javascript 闭包与高阶函数 ( 一 )

    上个月,淡丶无欲 让我写一期关于 闭包 的随笔,其实惭愧,我对闭包也是略知一二 ,不能给出一个很好的解释,担心自己讲不出个所以然来. 所以带着学习的目的来写一写,如有错误,忘不吝赐教 . 为什么要有闭 ...

  7. [Effective JavaScript 笔记]第19条:熟练掌握高阶函数

    高阶函数介绍 高阶函数曾经是函数式编程的一个概念,感觉是很高深的术语.但开发简洁优雅的函数可以使代码更加简单明了.过去几年中脚本语言采用了这些个技术,揭开了函数式编程的最佳惯用法的神秘面纱.高阶函数就 ...

  8. Python函数篇(二)之递归函数、匿名函数及高阶函数

    1.全局变量和局部变量 一般定义在程序的最开始的变量称为函数变量,在子程序中定义的变量称为局部变量,可以简单的理解为,无缩进的为全局变量,有缩进的是局部变量,全局变量的作用域是整个程序,而局部变量的作 ...

  9. Python函数篇(2)-递归函数、匿名函数及高阶函数

    1.全局变量和局部变量 一般定义在程序的最开始的变量称为函数变量,在子程序中定义的变量称为局部变量,可以简单的理解为,无缩进的为全局变量,有缩进的是局部变量,全局变量的作用域是整个程序,而局部变量的作 ...

随机推荐

  1. PHP 冷知识

    1,执行Linux命令 <?php $a =`ls -a /`; // execute linux command echo '<pre>'.$a; 2.为变量起别名 <?ph ...

  2. jQuery---width和height的方法

    width和height的方法 //获取div的宽度 $("div").css("width", "400px"); console.log ...

  3. AntDesign(React)学习-7 Menu添加事件

    今天花了大半天时间从老家回到工作地,路上因为肺炎封堵挺厉害,希望国家挺过这个难关,要不大家都失业可就惨了,上一篇做了一个展示数据的demo,这一篇研究antd Menu item点击事件 1.还是先看 ...

  4. Jupyter Notebook快捷键总结

    1. Jupyter Notebook有两种mode Enter:进入edit模式 Esc:进入command模式 2. Command命令快捷键: A:在上方增加一个cell B:在下方增加一个ce ...

  5. Centos7更改网卡名称Eth0

    标签: Centos7更改网卡名称 2016-12-06 21:55 8737人阅读 评论(1) 收藏 举报  分类: linux(6)  作者同类文章X 版权声明:本文为博主原创文章,未经博主允许不 ...

  6. pandas包学习笔记

    目录 zip Importing & exporting data Plotting with pandas Visual exploratory data analysis 折线图 散点图 ...

  7. 高效完成R代码

    为什么R有时候运行慢? 参考https://www.cnblogs.com/qiaoyihang/p/7779144.html 一.为什么R程序有时候会很慢? 1.计算性能的三个限制条件 cpu ra ...

  8. bootstrap资料索引

    中文手册  :  http://w3c.3306.biz/bootstrap_forms/show-25-64-1.html

  9. 少年的u

    发现了我提取DNa的过程存在问题,能够跑出action 但是不能克隆出基因.老师给我解释了为什么,说是我的DNA质量不是很高.但是在接下来的时间我会解决这个问题. 和师姐一起去上面的实验室,看了定量P ...

  10. tensorflow——乘法

    线性代数中,乘法是很重要的运算,具体的矩阵乘法原理可以翻教材,或看一下阮大神的这篇文章:http://www.ruanyifeng.com/blog/2015/09/matrix-multiplica ...