先来复习一下小学数学

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

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

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

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

相信大家都不陌生吧

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

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

#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. java学习笔记之反射—Class类实例化和对象的反射实例化

    反射之中所有的核心操作都是通过Class类对象展开的,可以说Class类是反射操作的根源所在,但是这个类的实例化对象,可以采用三种方式完成. java.lang.Class类的定义: public f ...

  2. 845. 八数码(bfs+map)

    在一个3×3的网格中,1~8这8个数字和一个“X”恰好不重不漏地分布在这3×3的网格中. 例如: 1 2 3 X 4 6 7 5 8 在游戏过程中,可以把“X”与其上.下.左.右四个方向之一的数字交换 ...

  3. yarn 不要一起用 npm

    yarn 不要一起用 npm 如果一起用,看下lock 的版本一样不,不一样可能会出现问题

  4. MySQL的联表查询

    MySQL的联表查询 首选:分析查询的字段来自哪些表 进而:确定交集 然后:确定判断的条件 比如:从student表 和 result表 查学号.考试名称.学时.考试日期.考试成绩 表1: 学号 考试 ...

  5. 多项式乘法逆元 - NTT

    递归求解即可 #include <bits/stdc++.h> using namespace std; #define int long long namespace NTT { #de ...

  6. Wannafly Camp 2020 Day 1C 染色图 - 组合数学,整除分块

    定义一张无向图 G=⟨V,E⟩ 是 k 可染色的当且仅当存在函数 f:V↦{1,2,⋯,k} 满足对于 G 中的任何一条边 (u,v),都有 f(u)≠f(v). 定义函数 g(n,k) 的值为所有包 ...

  7. (转)HashMap和HashTable源码

    转自: http://www.cnblogs.com/ITtangtang/p/3948406.html http://frankfan915.iteye.com/blog/1152091 一.Has ...

  8. JFinalSwagger插件

    个人博客 地址:http://www.wenhaofan.com/article/20190304101839 jfinal使用swagger的极简插件 码云地址:https://gitee.com/ ...

  9. C 库函数 - strncpy()

    描述 C 库函数 char *strncpy(char *dest, const char *src, size_t n) 把 src 所指向的字符串复制到 dest,最多复制 n 个字符.当 src ...

  10. Manacher算法求最长回文串模板

    #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> ...