首页 > 其他分享 >阶乘求和 0!+1!+2!+3!+4!+5!+... O(n) 复杂度

阶乘求和 0!+1!+2!+3!+4!+5!+... O(n) 复杂度

时间:2023-03-26 16:44:46浏览次数:38  
标签:std main +... int 复杂度 long 阶乘 include


n次循环
以 n = 4 为例

利用 n!+(n-1)! = (n + 1) x ( n - 1)!

	4! + 3! + 2! + 1! + 0!
= (4+1) x 3! + 2! + 1! + 0!
= ( (4+1) x 3 + 1) x 2! + 1! + 0!
= ( ( (4+1) x 3 + 1) x 2 + 1) x 1 + 0!
= ( ( ( (4+1) x 3 + 1) x 2 + 1) x 1 + 1) x 0!
#include <iostream>
#include <stdio.h>
#include <string>
#include <typeinfo>
#include <stack>
#include <vector>
#include <sstream>
#include <string.h>
#include <map>
#include <math.h>
#include <stdlib.h>
#include <limits.h>
using namespace std;
typedef long long LL;

int main()
{
    int n = 5;
    long long s = 1;
    for (;n >= 1; n--)
    {
       s = (1 + n * s) ;
    }
    cout<< s <<endl;
    return 0;
}


标签:std,main,+...,int,复杂度,long,阶乘,include
From: https://blog.51cto.com/liyunhao/6150442

相关文章

  • 【数据结构基础1】时间复杂度和空间复杂度
    【数据结构基础】时间复杂度和空间复杂度算法的时间复杂度和空间复杂度【本节目标】1.算法效率2.时间复杂度3.空间复杂度4.常见时间复杂度以及复杂度oj练习数据结构指的是“......
  • 大数乘法,递归计算50的阶乘
    publicstaticvoidmain(String[]args){Stringresult=factrial(100);System.out.println(result);}//计算两个数的乘积privatesta......
  • 复杂度分析:如何分析、统计算法的执行效率和资源消耗
    作者:京东物流崔旭我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间。所以,执行效率是算法一个非常重要的考量指......
  • 算法的时间复杂度和空间复杂度
    常用的算法的时间复杂度和空间复杂度 排序法最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排......
  • C语言:求求e=1/1!+1/2!+1/3!+....+1/n!
    #include<stdio.h>//求e=1/1!+1/2!+1/3!+....+1/n!main(){doublee=1,a,s=1;inti;for(i=1;i<=20;i++){s*=i;a=1/s;......
  • 793. 阶乘函数后 K 个零
    f(x) 是 x! 末尾是0的数量。回想一下 x!=1*2*3*...*x,且0!=1 。例如, f(3)=0 ,因为3!=6的末尾没有0;而f(11)=2 ,因为11!=39916800末端有......
  • 时间复杂度--大O记算法
       EG:  ......
  • hashmap get、put时间复杂度
    在JDK8之前用单链表HashMap作为一个桶来储存存在哈希碰撞的元素。无论是get还是put方法,步骤都可以分为第一步找桶(找桶时间都为O(1),可以忽略),第二步在桶内进行操作(查找或......
  • 时间复杂度和空间复杂度
    时间复杂度和空间复杂度1、概述​ 算法就是解决一个问题的方法,同一个问题使用不同的算法得到相同的结果,但是所消耗的资源是不等的,这就意味着我们需要从众多的算法中选......
  • C语言_求n阶乘
    #include"stdio.h"main(){ longi,sum; printf("请输入一需要求阶乘的数:"); scanf("%ld",&i); sum=1; while(i>1) { sum=sum*i; i--; } printf("\n这个数......