1、冒泡排序调优(从小到大排序)
2、输出九九乘法表
3、输出水仙花数
4、1–10的阶乘和
5、输出1900年至2100年中的所有闰年
6、输出10–100之间的所有素数
7、1,2,3,4四个数字,能组合成多少种互不相同且没有重复的三位数
8、取出四位数中的各个位上的数字
9、猴子吃桃问题
10、用星号输出菱形。
源码如下:

js算法题目练习

<!-- 2、输出九九乘法表 -->
<script type="text/javascript">// 内容提示console.log("2、输出九九乘法表:");// 定义一个string类型的变量,用于存放乘法表结果var output2 = "";// 第一层循环,第一个因数,1~9for (var i = 1; i <= 9; i++) {// 第二层循环,第二个因数,1~ifor (var j = 1; j <= i; j++) {// j*i = j * i,制表符用来对齐output2 += j + "*" + i + "=" + i * j + "\t";}// 每一行输出后,增加换行output2 += "\n";}// 输出乘法表结果console.log(output2);// 输出换行,区分下一块内容console.log("\n");
</script><!-- 3、输出水仙花数 -->
<script type="text/javascript">// 内容提示console.log("3、输出水仙花数");// 定义三个变量,用于取出三位数的百位,十位,千位var a = 0,b = 0,c = 0;// 定义一个string类型的变量,用于存放计算结果var output3 = "水仙花数有:";// 从101到999循环,水仙花数是一个三位数for (var num = 101; num <= 999; num++) {// 取出百位a = parseInt(num / 100);// 取出十位b = parseInt(num % 100 / 10);// 取出个位c = parseInt(num % 100 % 10);// 判断是否满足水仙花数的条件if (a * a * a + b * b * b + c * c * c == num) {// 将满足条件的数存入结果output3 += num + " ";}}// 输出结果console.log(output3);// 输出换行,区分下一块内容console.log("\n");
</script><!-- 4、1--10的阶乘和 -->
<script type="text/javascript">// 内容提示console.log("4、1--10的阶乘和");// 定义结果var result = 0;// 定义阶乘结果var factorial = 1;// 第一层循环表示从1到10循环for (var i = 1; i <= 10; i++) {// 第二层循环表示求1到10的每一个数的阶乘的过程for (var j = 1; j <= i; j++) {// 求阶层的方法factorial = factorial * j;}// 将每次循环的阶乘结果加到定义的结果中result = result + factorial;// 阶乘结果每次循环之后回到初始值factorial = 1;}// 输出最终的阶乘和的结果console.log("1--10的阶乘和为:" + result);// 输出换行,区分下一块内容console.log("\n");
</script><!-- 5、输出1900年至2100年中的所有闰年 -->
<script type="text/javascript">// 内容提示console.log("5、输出1900年至2100年中的所有闰年");// 定义结果集,并给出提示,用于储存结果var result5 = "1900年至2100年中的所有闰年有:\n";// 设置一个标志,用来判断每行是否有5个年份var flag = 0;// 1900-2100循环,依次计算for (var year = 1900; year <= 2100; year++) {// 判断是都满足闰年的条件if ((parseInt(year % 4) == 0) && (((parseInt(year % 100) != 0)) || (parseInt(year % 400) == 0))) {// 满足条件的年份放入结果集中并加入空格隔开result5 += year + "\t";// 每往结果集中放一个年份标志加1flag++;}// 如果标志等于5,表示每一行有了5个年份,需要换行操作if (flag == 5) {// 结果集中加入换行result5 += "\n";// 重置标志flag = 0;}}// 输出最终结果console.log(result5);// 输出换行,区分下一块内容console.log("\n");
</script><!-- 6、输出10--100之间的所有素数 -->
<script type="text/javascript">// 内容提示console.log("6、输出10--500之间的所有素数");// 定义结果集,用于储存后面计算得出的素数并提示var primeNumbers = "10--500之间的所有素数有:\n";// 定义一个是否到了5的标志,用于后面控制是否一行有5个数字var areFive = 0;// 10到500循环,一次利用下面的算法进行判断for (var num = 10; num <= 500; num++) {// 定义标志,用来判断能不能被除1和自己本身的其他数整除var flag = true;// 用第一次循环中的每一个数,来除以除1和他本身的之间的所有整数for (var i = 2; i <= num - 1; i++) {// 判断这个数除以除1和他本身的之间的所有整数是否有能被整除的情况if (num % i == 0) {// 如果能被除1和他本身的之间的所有整数整除,标志设置为falseflag = false;// 跳出本次循环,当前数字不是素数break;}}// 如果标志flag在上一步没有被设置成false,表示该数为素数if (flag == true) {// 将该次循环中的数字放入结果集中,并增加制表符来对齐primeNumbers += num + "\t\t";// 每写入一个素数,判断是否有5个的标志增加1areFive++;}// 如果判断是否有5个的标志到了5if (areFive == 5) {// 给结果集增加一个换行primeNumbers += "\n";// 重置标志areFive = 0;}}// 输出最终的结果console.log(primeNumbers);// 输出换行,区分下一块内容console.log("\n");
</script><!-- 7、1,2,3,4四个数字,能组合成多少种互不相同且没有重复的三位数 -->
<script type="text/javascript">// 内容提示console.log("7、1,2,3,4四个数字,能组合成多少种互不相同且没有重复的三位数");// 定义记数标志var count = 0;// 定义结果集,存放结果var result7 = "能组合成的互不相同且没有重复的三位数有:\n";// 三次循环表示三位数,每次循环,都是1,2,3,4for (var i = 1; i <= 4; i++) {for (var j = 1; j <= 4; j++) {for (var k = 1; k <= 4; k++) {// 如果三个数字都不相等if (i != j && j != k && k != i) {// 组合成一个三位数var sum = 100 * i + 10 * j + k;// 存储到结果集中result7 += sum + "  ";// 记数标志加1count++;}}}}// 换行后在结果中加入种数result7 += "\n一共有" + count + "种";// 输出结果console.log(result7);// 输出换行,区分下一块内容console.log("\n");
</script><!-- 8、取出四位数中的各个位上的数字 -->
<script type="text/javascript">// 内容提示console.log("8、取出四位数中的各个位上的数字:");//定义一个四位数 var num = 4578;// 输出原四位数console.log("原四位数是:" + num);// 取出千位var a = num / 1000;// 取出百位var b = num % 1000 / 100;// 取出十位var c = num % 1000 % 100 / 10;// 取出个位var d = num % 1000 % 100 % 10;//取出个位的另一种//var d = num % 10;console.log("千位是:" + parseInt(a) + ",百位是:" + parseInt(b) + ",十位是:" + parseInt(c) + ",个位是:" + parseInt(d));// 输出换行,区分下一块内容console.log("\n");
</script><!-- 9、猴子吃桃问题 -->
<script type="text/javascript">// 内容提示console.log("9、猴子吃桃问题:");console.log("猴子吃桃子问题:猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就又吃了一个。");console.log("\t\t\t第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。");console.log("\t\t\t到第10天在想吃的时候就剩一个桃子了。求第一天共摘下来多少个桃子?");// 定义总数var sum = 1;// 按照题目从第10天往前计算for (var i = 1; i < 10; i++) {sum = (sum + 1) * 2;}// 输出结果console.log("计算答案:第一天共摘下来的桃子个数是" + sum + "个");// 输出换行,区分下一块内容console.log("\n");
</script><!-- 10、用星号输出菱形 -->
<script type="text/javascript">// 内容提示console.log("10、用星号输出菱形");// 定义结果集,用来存放星号和空格var result10 = "";// 定义菱形宽度var width = 10;// 菱形上半部分,循环递增for (var i = 1; i <= width; i++) {// 菱形上半部分,空格递减for (var a = width - i; a >= 1; a--) {result10 += " ";}// 菱形上半部分,星号递增for (var j = 1; j <= i * 2 - 1; j++) {result10 += "*";}// 每一行结束后换行result10 += "\n";}// 菱形下半部分,循环递减for (var i = width - 1; i >= 1; i--) {// 菱形下半部分,空格递增(递减的递减)for (var a = width - i; a >= 1; a--) {result10 += " ";}// 菱形下半部分,星号递减(递减的递增)for (var j = 1; j <= i * 2 - 1; j++) {result10 += "*";}result10 += "\n";}console.log(result10);// 输出换行,区分下一块内容console.log("\n");
</script>

10个JS常见算法题目相关推荐

  1. 语言高精度算法阶乘_JavaScript中的算法(附10道面试常见算法题解决方法和思路)...

    https://juejin.im/post/6844903811505455118 Introduction 面试过程通常从最初的电话面试开始,然后是现场面试,检查编程技能和文化契合度.几乎毫无例外 ...

  2. C#常见算法题目(面试准备)

    1.写出冒泡,选择,插入排序算法. //冒泡排序     public class bubblesorter     { public void sort(int[] list)         { ...

  3. java java算法题目_java常见算法题目

    1: JAVA经典算法40题 2: [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 3 ...

  4. 你应该熟悉的10个PHP常见算法

    1.猴王算法 一群猴子排成一圈,按1,2,-,n依次编号.然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去-,如此不停的进行下去,直到最后只剩下一只猴子为止,那 ...

  5. JS常见算法-累加/累积

    累加:将一系列的数据加到一个变量里面.最后得到累加的结果. emptyvar sum = 0; for(var i = 1;i <= 100;i++){sum += i; } empty var ...

  6. 第10章 基础API与常见算法

    第10章 基础API与常见算法 学习目标 了解数学相关API 了解日期时间API 了解系统类API 掌握数组基础算法 掌握数组工具类的使用 熟练掌握String类的API 熟练掌握StringBuil ...

  7. 前端常见算法的JS实现

    原文链接 排序算法 1.冒泡排序 function bubbleSort(arr){var i = 0,j = 0;for(i=1; i<arr.length; i++){for(j=0; j& ...

  8. c语言最长递增子序列nlogn,十月常见算法考题、最长递增子序列,Leetcode第300题最长上升子...

    十月常见算法考题.最长递增子序列,Leetcode第300题最长上升子 十月常见算法考题.最长递增子序列,Leetcode第300题最长上升子序列的变种,我没见过乔丹,今天詹姆斯就是我的神! @Aut ...

  9. 年后跳槽BAT必看:10种数据结构、算法和编程课助你面试通关

    作者 | javinpaul 译者 | 大鱼 编辑 | 一一 出品 | AI 科技大本营 进入 BAT 这样的巨头企业工作,无疑是很多程序员的梦想.但事实上,能通过这些公司高难度编程面试的只是一小撮人 ...

最新文章

  1. LeetCode 141. Linked List Cycle--面试编程题--C++,Python解法
  2. 图文说明如何使用T4在VS2008里生成代码
  3. linux gedit如何保存 退出
  4. 利用FS寄存器获取KERNEL32.DLL基址算法的证明(ZZ)
  5. Spring2..5整合Ehacahe
  6. 职业经理人必读知识:36页SWOT全面解读,有效提升分析能力
  7. mysql空值判断函数_MySQL中的ifnull()函数判断空值
  8. mac安装thrift
  9. 关于 Google 发布的 JS 代码规范
  10. 订阅付费专栏,支付299.9元,免费送代码
  11. ES6 Set结构和Map结构(上)
  12. 软件配置管理计划示例
  13. mysql修改字段默认值_Mysql 修改字段默认值
  14. Code is far away from bug with the animal protecting
  15. 为什么硅谷初级程序员工资堪比腾讯T3技术专家级
  16. 85.【Vue-细刷-01】
  17. OSChina 周日乱弹 —— 妹子是国家战略资源啊
  18. 中国象棋软件-引擎实现(二)棋局表示
  19. 从钉钉到MySQL通过接口配置打通数据
  20. 透明、匿名、高匿代理学习记录

热门文章

  1. ACM知识点思维导图
  2. 1688API:item_search - 按关键字搜索商品
  3. IDEA查看文件本地历史记录
  4. 光闸备份一体机的数据保护功能
  5. 4.[JAVA视频教程]JavaEE初中级工程师 视频目录
  6. 我的编程之路(二十八) 回首2014
  7. leetcode51. N 皇后 (java)
  8. H5中判断手势左滑右滑
  9. mysql数据库报1205错误的解决方法
  10. 素数在c语言表达能力,巧用C语言中的Continue语句解决数论中的问题