JavaScript-阶乘的三种做法(正向&逆向&递归)

一、正向求阶乘

    function factorial(n) {
        var product = 1, i = 2;
        while (i <= n) {
            product *= i;
        }
        return product;
    }
    alert(factorial(4));

二、逆向求阶乘

    function factorial(n) {
        var product = 1;
        while (n > 1) {
            product *= n;
            n--;
        }
        return product;
    }
    alert(factorial(4));

三、递归求阶乘

    function factorial(n) {
        if (n <= 1) {
            return 1;
        } else {
            return n * factorial(n - 1);
        }
    }
    alert(factorial(4));
时间: 2024-12-09 19:29:49

JavaScript-阶乘的三种做法(正向&逆向&递归)的相关文章

JavaScript中的三种弹出对话框

JavaScript中的三种弹出对话框 *****本文来自互联网****** 学习过js的小伙伴会发现,我们在一些实例中用到了alert()方法.prompt()方法.prompt()方法,他们都是在屏幕上弹出一个对话框,并且在上面显示括号内的内容,使用这种方法使得页面的交互性更精彩,实际上我们经常会在进行网页浏览时简单这种类型的对话框,在用户与应用程序进行双向交流时,经常要用到对话框.avascript的三种对话框是通过调用window对象的三个方法alert(),confirm()和prom

codevs 2924 数独挑战 x(三种做法+超详细注释~)

2924 数独挑战 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 钻石 Diamond 题目描述 Description “芬兰数学家因卡拉,花费3个月时间设计出了世界上迄今难度最大的数独游戏,而且它只有一个答案.因卡拉说只有思考能力最快.头脑最聪明的人才能破解这个游戏.”这是英国<每日邮报>2012年6月30日的一篇报道.这个号称“世界最难数独”的“超级游戏”,却被扬州一位69岁的农民花三天时间解了出来. 看到这个新闻后,我激动不已,证明我们OI的实力的机会来了,我们虽然不是

JavaScript中的三种弹出框

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <title>JavaScript中的三种弹出框</title> 5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 6 <script type="text/JavaScript"> 7 funct

二叉树的三种输出方式:递归、栈、循环

三种方法中,递归最为简单,栈次之,循环最为麻烦.递归的深度如果太大则会导致栈溢出:栈的方式需要额外的辅助空间:循环编程最麻烦. 首先是递归: //递归方法 void midPrint_r(TreeNode* root) {//中序遍历 if(root==NULL) return; if(root->left) midPrint(root->left); cout<<root->val<<" "; if(root->right) midPr

JavaScript事件处理的三种方式(转)

一.什么是JavaScript事件? 事件(Event)是JavaScript应用跳动的心脏,也是把所有东西粘在一起的胶水,当我们与浏览器中Web页面进行某些类型的交互时,事件就发生了. 事件可能是用户在某些内容上的点击.鼠标经过某个特定元素或按下键盘上的某些按键,事件还可能是Web浏览器中发生的事情,比如说某个Web页面加载完成,或者是用户滚动窗口或改变窗口大小.说白了,事件是文档或浏览器中发生的特定交互瞬间! 通过使用JavaScript,你可以监听特定事件的发生,并规定让某些事件发生以对这

【转】WebView的JavaScript与本地代码三种交互方式

WebView的漏洞分析 漏洞产生的原因 最近在开发过程中遇到一个问题,就是 WebView 使用的时候,还是需要解决之前系统(4.2之前)导致的一个漏洞,虽然现在这个系统版本用户很少了,但是也不能忽视,关于这个漏洞,这里就不多做解释了,可能有的同学早就了解了,本来想写一篇文章详细介绍一下,但是网上的知识太多了,而且都很详细,就没弄了,这里大致简单明了的说几句: 漏洞产生的原因 这个漏洞导致的原因主要是因为Android中 WebView 中的 JS访问本地方法 的方式存在缺陷,我们做过交互的都

javascript中的三种弹窗

js中三种弹窗 1)alert 弹出警告 无返回值---------alert('第一行\n第二行'); 2)confirm()选择确定或取消,返回t或f----var result = confirm('是否删除!'); 3)prompt()弹出输入框,返回输入内容----var value = prompt('输入你的名字:', '请在这里输入名字');

哗啦啦Python之路 - Day 6 - 三种基础排序,递归,反射,模块

1. 三种排序方式 - 冒泡排序:两两比较,大的排右边,每次冒出去一个泡 m = [1,2,6,5,4] for i in range(len(m)): for j in range(i): if m[j] > m[j+1]: m[j],m[j+1] = m[j+1],m[j] print(m) - 选择排序 对于一组关键字{K1,K2,…,Kn}, 首先从K1,K2,…,Kn中选择最小值,假如它是 Kz,则将Kz与 K1对换:然后从K2,K3,… ,Kn中选择最小值 Kz,再将Kz与K2对换.

JavaScript中交换两个变量的值得三种做法(代码实现)

javascript在编程时经常会涉及到如何交换两个变量的值,例如常见的冒泡排序,快速排序等:下面我讲根据自己近期所学总结几种常见的交换两个变量值的方法: 方法一:借助第三方变量交换两个变量的值 var num1=20; var num2=50; var temp=num1; num1=num2; num2=temp; console.log(num1);//在控制台输出交换后的num1=50 console.log(num2);//在控制台输出交换后的num2=20 方法二:借助加法计算,交换