10个JS常见算法题目

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

大家好,又见面了,我是你们的朋友全栈君。

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~9
for (var i = 1; i <= 9; i++) {
// 第二层循环,第二个因数,1~i
for (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";
// 每往结果集中放一个年份标志加1
flag++;
}
// 如果标志等于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和他本身的之间的所有整数整除,标志设置为false
flag = false;
// 跳出本次循环,当前数字不是素数
break;
}
}
// 如果标志flag在上一步没有被设置成false,表示该数为素数
if (flag == true) {
// 将该次循环中的数字放入结果集中,并增加制表符来对齐
primeNumbers += num + "\t\t";
// 每写入一个素数,判断是否有5个的标志增加1
areFive++;
}
// 如果判断是否有5个的标志到了5
if (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,4
for (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 + "  ";
// 记数标志加1
count++;
}
}
}
}
// 换行后在结果中加入种数
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>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/148120.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Redis深度历险——核心原理与应用实践

    Redis深度历险——核心原理与应用实践

    2021年10月31日
  • 如何解决数据库查询慢的问题_炖锅怎么那么慢熟

    如何解决数据库查询慢的问题_炖锅怎么那么慢熟一条慢查询会造成什么后果?年轻时,我一直觉得不就是返回数据会慢一些么,用户体验变差?其实远远不止,我经历过几次`线上事故`,有一次就是由一条SQL慢查询导致的。

    2022年10月14日
  • 企业网站seo维护_seo怎么才能优化好

    企业网站seo维护_seo怎么才能优化好  一般说来,URL中包含关键词对网站优化确实会有所帮助。不过从品牌效果考虑,用品牌名称做域名应该是比较合适的。不要走急功近利误区。独立域名更能获得搜索引擎的认可。调查显示:大多数搜索引擎排名时对那些不具备独立域名的网站赋予较小的“重要性”。      网站优化的目的是用合理的手段(不是作弊),对网站源代码进行优化,使之对搜索引擎更友好,更符合排名规则一个站点的排名70%是靠网站优化

  • pycharm无法使用第三方库_pycharm第三方库安装路径

    pycharm无法使用第三方库_pycharm第三方库安装路径有时候更新第三方库一直失败,猜测是源的问题,换成豆瓣的源后依然更新不了,参照网上搜索最后解决了问题,这里留个解决方法。方式一:pycharm里换源。自带是国外的源,更换为国内的访问更快更稳定,提供几个能用的源:清华:https://pypi.tuna.tsinghua.edu.cn/simple豆瓣:https://pypi.douban.com/simple/阿里:https://mirrors.aliyun.com/pypi/simple/我用的阿里。步骤:File>Settin

  • SilverLight浏览器支持情况

    SilverLight浏览器支持情况推荐使用IE、360浏览器,搜狗、QQ浏览器需切换到兼容模式。以下浏览器版本不再支持:Chrome45及以后版本、Firefox52及以后版本、MicrosoftEdge浏览器、Opera浏览器。…

  • Socket tips: UDP Echo service – Server code

    Socket tips: UDP Echo service – Server code

    2021年11月30日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号