首页 > 编程语言 >LeetCode 阶乘后的零算法题解 All In One

LeetCode 阶乘后的零算法题解 All In One

时间:2022-10-07 23:22:53浏览次数:115  
标签:multi factorial 题解 testCase item https 阶乘 com LeetCode

LeetCode 阶乘后的零算法题解 All In One

factorial

阶乘后的零原理 图解

  1. 实现 factorial
  2. 计算后面 0 的个数,除 0! 本身的 0

阶乘!

https://www.shuxuele.com/numbers/factorial.html
https://www.shuxuele.com/definitions/factorial.html

172. 阶乘后的零

  1. Factorial Trailing Zeroes
function trailingZeroes(n: number): number {
  if(n === 0) return 0;
  function factorial(n, multi = 1) {
    if(n === 1) return multi;
    multi *= n;
    return factorial(n - 1, multi)
  }
  const num = factorial(n);
  const arr:string[] = `${num}`.split(``).reverse();
  let len: number = 0;
  for(const item of arr) {
    if(item === '0') {
      len += 1;
    } else {
      break;
    }
  }
  return len;
};

// 大数相乘 ???

// testCase factorial(30) = 2.652528598121911e+32 ❌
// 通过测试用例:21 / 500
// 输入:30 输出:0 预期结果:7

/* 

(() => {
  const log = console.log;
  function factorial(n, multi = 1) {
    if(n === 0) {
      return 0;
    }
    if(n === 1) {
      return multi;
    }
    multi = n * multi;
    return factorial(n - 1, multi);
  };

  const arr = [...new Uint8Array(100)].map((item, i) => i);
  // for (const [item, i] of arr.entries()) {
  //   log(`item, i =`, item, i);
  // }
  for (const item of arr) {
    log(`testCase factorial(${item}) =`, factorial(item));
    if(`${factorial(item)}`.includes(`e`)) {
      break;
    }
  }
  // factorial(50)
  // 3.0414093201713376e+64
  // 阶乘, `科学计数法` `e` bug ❌
})();

*/


/*

$ npx ts-node ./172\ factorial-trailing-zeroes.ts

testCase factorial(0) = 0
testCase factorial(1) = 1
testCase factorial(2) = 2
testCase factorial(3) = 6
testCase factorial(4) = 24
testCase factorial(5) = 120
testCase factorial(6) = 720
testCase factorial(7) = 5040
testCase factorial(8) = 40320
testCase factorial(9) = 362880
testCase factorial(10) = 3628800
testCase factorial(11) = 39916800
testCase factorial(12) = 479001600
testCase factorial(13) = 6227020800
testCase factorial(14) = 87178291200
testCase factorial(15) = 1307674368000
testCase factorial(16) = 20922789888000
testCase factorial(17) = 355687428096000
testCase factorial(18) = 6402373705728000
testCase factorial(19) = 121645100408832000
testCase factorial(20) = 2432902008176640000
testCase factorial(21) = 51090942171709440000
testCase factorial(22) = 1.1240007277776077e+21

*/


LeetCode 题解 / LeetCode Solutions

https://www.youtube.com/channel/UCftIXZeipv4MTVwmfFphtYw/videos

YouTube & LeetCode 力扣官方算法题解视频列表

https://www.youtube.com/playlist?list=PLamwFu9yMruCBtS2tHUD77oI_Wsce-syE

https://github.com/xgqfrms/leetcode/issues/14

https://www.youtube.com/results?search_query=+Leetcode+172

<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/3Hdmv_Ym8PI?start=40" title="YouTube video player" width="560"></iframe>

https://neetcode.io/

~~

https://github.com/neetcode-gh/leetcode/blob/main/javascript/172-Factorial-Trailing-Zeroes.js

https://github.com/neetcode-gh/leetcode/blob/main/typescript/172-Factorial-Trailing-Zeroes.ts

~~

类似问题

LeetCode

https://leetcode.com/problems//

refs



©xgqfrms 2012-2020

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载

标签:multi,factorial,题解,testCase,item,https,阶乘,com,LeetCode
From: https://www.cnblogs.com/xgqfrms/p/16767496.html

相关文章

  • PAT程序设计题解
    @目录7-1PY圆面积输入格式:输出格式:输入样例:输出样例:7-2求正弦值输入角度输入格式:输出格式:输入样例:输出样例:7-3PY时间差输入格式:输出格式:输入样例:输出样例:......
  • 阶乘
    #每日美图分享#一、求n的阶乘#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>intmain(){intn=0;inti=0;intret=1;printf("pleaseinput:");scanf(......
  • #yyds干货盘点# LeetCode 热题 HOT 100:最小路径和
    题目:给定一个包含非负整数的m x n 网格 grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。 示例1:输入:grid=......
  • 「题解」Codeforces GYM 102268 J Jealous Split(300iq Contest 1 J)
    怎么想到的结论?结论是,如果把看成最小化\(\sum{s_i}^2\),那么一定满足条件。证明是考虑如果相邻两段\(s>t\),如果不满足条件即\(s-t>\max\),说明将\(s\)和\(t\)交界处......
  • LeetCode - #144 二叉树的前序遍历
    前言我们社区陆续会将顾毅(Netflix增长,《iOS面试之道》作者,ACE职业健身教练。)的Swift算法题题解整理为文字版以方便大家学习与阅读。LeetCode算法到目前我们已经更新到......
  • 阿里云移动端热修复-Sophix(for Android)-问题解答
    前段时间了解了阿里云的热修复Sophix的基本使用,在使用过程中遇到很多问题,特此记录一下。 1、热修复可以发多个补丁么?答:补丁可以发好多次,但只能发布一个补丁。例如:我已......
  • CF1508C题解
    设题目给定的边为实边,未给出的为虚边容易发现2个性质:1.设所有实边的权值异或和为\(s\),则令一条未给出的边的权值为s,其他为0最优考虑求出虚边构成的连通块,这是个经典问题......
  • [SCOI2005] 骑士精神 题解
    题目描述解法采用IDA*算法。不移动骑士而移动空格。每次限制深度,然后对每个遍历到的点进行一次估价,估价函数的值即为当前状态和终点的差异数。如果估计的加上已经确......
  • P2467 地精部落 题解
    P2467地精部落题解比较恶心的一道线性dp。要求1~N的排列,满足a[i-1]<a[i]>a[i+1]或a[i-1]>a[i]<a[i+1],求这样的排列的个数。既然是线性dp,那么状态一定和长度有关,一维的......
  • 答题比赛难题解析(2)
    1、以下说法中正确的个数是():1)实体-关系图和数据流图也可以描述分析模型2)和设计工作流的对象相比较,分析工作流的对象的特点是仅存在于内存中,不保存到硬盘3)每个用例映......