求一个正整数的阶乘

/*
求一个正整数的阶乘。
 * 输入一个正整数,返回它的阶乘。
 * */

let fact = (function f(num){
    "use strict";

    if(num<=1){
        return 1;
    }
    else {
        return num*f(num-1);
    }
});

console.log(fact(4));

**

原文地址:https://www.cnblogs.com/moyuling/p/8995693.html

时间: 2024-10-22 11:01:25

求一个正整数的阶乘的相关文章

计算一个正整数的阶乘(JavaScript)

function factorial(n) { if (isFinite(n) && n > 0 && n == Math.round(n)) { // 有限的正整数 if (!(n in factorial)) // 没有缓存结果 factorial[n] = n * factorial(n - 1); return factorial[n]; // 返回缓存结果 } else { return NaN; } } factorial[1] = 1; factoria

说一说,求一个正整数的二进制中0的个数

昨天突然看到一个算法题:一个正整数a的二进制中0的个数: 话说这是个老题了,直观的算法就每次右移一位,直到0为止:代码就省略了: 仔细想想有更好的方案么? 就是这个题可以转换成一个正整数~a的二进制中1的个数: 求1的个数这个貌似就很熟悉了吧: int num = 0; b = ~a; while(b){ num++; b = b & (b-1); } 是不是容易了许多呢 另外像java和python这种没有unsigned的语言要自己去转 b = ~a & 0x0ffff

PHP函数求一个整数的阶乘

//随手写的一个阶乘的函数 注意:不要把负数给忘了!不要把负数给忘了!不要把负数给忘了! <?php  function jisuan($i){ if($i==0){                                    return 1; }elseif($i<0){     $rest=$i*jisuan($i+1);                //负数往0靠近是+1      return $rest; }else{     $rest=$i*jisuan($i-1)

c/c++ 求一个整数转换为二进制数时中‘1’的个数

求一个正整数转换为二进制数时中'1'的个数 分析:这道题目就是很简单的位运算,我们可以把这个整数和1进行&操作(就是二进制数中的最低位与1进行&),然后将这个整数进行右移处理,将下个位置的数字移到最低位:反复如此操作直到该数变为0. 1 int NumOf_one(int k) 2 { 3 int count_1 = 0; 4 while(k) 5 { 6 if(k & 1) 7 count_1++; 8 k >>= 1; 9 } 10 return count_1;

输入一个正数x和一个正整数n,求下列算式的值。要求定义两个调用函数:fact(n)计算n的阶乘;mypow(x,n)计算x的n次幂(即xn),两个函数的返回值类型是double

题目描述 输入一个正数x和一个正整数n,求下列算式的值.要求定义两个调用函数:fact(n)计算n的阶乘:mypow(x,n)计算x的n次幂(即xn),两个函数的返回值类型是double. x - x2/2! + x3/3! + ... + (-1)n-1xn/n! ×输出保留4位小数. 输入 x n 输出 数列和 样例输入 2.0 3 样例输出 1.3333 提示 无 来源 无 1 #include<stdio.h> 2 double fact(int); 3 double mypow(in

c#编程:给定一个正整数求出是几位数并逆序输出

<span style="color:#FF0000;">第一步:把输入的数字转为字符串n.ToString() 第二步:求出字符串的长度即为正整数的位数 第三步:从后向前逆序输出</span> 附代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; //给一个正整数, //要求:一.求它是几位数,二.逆序打印出各位数字. namespa

哪几个数的阶乘末尾有n个0?其中n是一个正整数,从键盘输入

题目:哪几个数的阶乘末尾有n个0?其中n是一个正整数,从键盘输入. 1 int main( void ) /* name: zerotail.cpp */ 2 { int num, n, c, m; 3 cout<<"输入零的个数(>0):"; cin>>n; 4 while( n>0 ) 5 { c=0; num=0; 6 do 7 { num+=5; 8 m=num; 9 while( m%5==0 ) 10 { c++; 11 m/=5; 12

一个正整数N,不用sqrt求开方数

#include<stdio.h> int main() { int n; // 正整数n int i; // for循环 int myR = 1; // 保证myR^2 <= n < (myR+1)^2 double temp; // 临时变量 while(scanf("%d", &n) != EOF) { if (n <= 0) continue; // 寻找myR for (i=1; i<=n/2; i++) { if ((i * i

26.一个正整数如果恰好等于它的因子之和,这个数称为“完数”,如6=1+2+3,求1000以内所有的完数.

?#include<iostream> using namespace std; int main() { for(int i=1;i<=1000;i++) { int sum=0; for(int j=1;j<i;j++) { if(i%j==0) { sum+=j; } } if(sum==i) { cout<<i<<" "<<endl; } } return 0; } 26.一个正整数如果恰好等于它的因子之和,这个数称为