前端笔试算法题js——99乘法表、10!、水仙花数、101-200之间的素数

本文介绍了JavaScript编程中常见的算法问题,包括如何使用循环和嵌套循环实现99乘法表,计算10的阶乘,找出101-200之间的水仙花数以及101-200之间的素数。这些算法是前端开发者在笔试中可能遇到的经典题目,通过实例解析了它们的实现思路和代码细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在很多大厂的笔试中会有算法题,在前端中由于js的重要性所以算法题肯定不会少,下面总结了几个差不多算必考的案例。

打印出99乘法表

写之前先捋一下思想,乘法表1-9之间肯定需要用到循环,而且因为有两个因数所以需要两个变量、需要嵌套循环语句。

var k="";
for(var i=1;i<=9;i++)
{
	for(var j=1;j<=i;j++)
	{
				k = k + j + "*" + i +"=" = " ";
				if(j == i)
				{
					k = k + "\n";
				}
	}
}
console.log(k);

结果如下:
在这里插入图片描述

10!

10的阶乘需要循环,但是只需要一个变量用来装结果,通过改变循环进行累乘

 var sum=1;
        for(i=1;i<=10;i++){
            sum *=i;
        }
 console.log(sum);

水仙花数

需要五个变量,三个表示每个位上的值,一个表示数本身,一个统计总数

var sum=0;
        for(n=100;n<=999;n++){
            var i=parseInt(n/100);
            var j=parseInt(n%100/10);
            var k=parseInt(n%10);
            if(i*i*i+j*j*j+k*k*k==n){
                console.log(n);
                sum=sum+1;
            }
        }
console.log(sum);

结果如下
在这里插入图片描述

101-200之间的素数

主要需要进行判断是否是素数,然后进行输出,将每次循环判断出的素数进行统计

 var flag = 0,sum = 0;
        for(var i=101;i<=201;i++){
            for(var j=2;j<i;j++){
                if(i%j == 0)
                {
                    flag = 1;
                    break;
                }
                else
                {
                    flag = 0;
                }
            }
            if(flag == 0&&i != 1){
                console.log(i);
                sum = sum + 1;
            }
        }
console.log(sum+"个素数");

结果如下
在这里插入图片描述

在MongoDB中,实现自增ID可以使用一个专门的集合来存储计器。以下是实现自增ID的步骤: 1. **创建一个计器集合**:这个集合用于存储每个需要自增ID的集合的当前计值。 2. **使用事务**:为了确保原子性,可以使用MongoDB的事务功能。 3. **编写函**:编写一个函来获取自增ID,并在插入新文档时调用该函。 以下是一个示例代码,展示了如何在MongoDB中实现自增ID: ```javascript // 连接到MongoDB const { MongoClient } = require('mongodb'); const uri = 'mongodb://localhost:27017'; const client = new MongoClient(uri, { useNewUrlParser: true, useUnifiedTopology: true }); async function run() { try { await client.connect(); const database = client.db('mydatabase'); const counters = database.collection('counters'); // 插入一个计器文档 await counters.insertOne({ _id: 'userid', seq: 0 }); // 获取自增ID的函 async function getNextSequence(name) { const result = await counters.findOneAndUpdate( { _id: name }, { $inc: { seq: 1 } }, { returnDocument: 'after', upsert: true } ); return result.value.seq; } // 插入新文档时使用自增ID const users = database.collection('users'); const user = { _id: await getNextSequence('userid'), name: 'John Doe' }; await users.insertOne(user); console.log('New user inserted with _id:', user._id); } finally { await client.close(); } } run().catch(console.dir); ``` 在这个示例中: 1. **连接MongoDB**:使用`MongoClient`连接到MongoDB据库。 2. **创建计器集合**:插入一个文档到`counters`集合,用于存储`userid`的当前计值。 3. **获取自增ID的函**:`getNextSequence`函使用`findOneAndUpdate`方法原子地增加计器的值,并返回新的计值。 4. **插入新文档**:在插入新用户文档时,使用`getNextSequence`函获取自增ID。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值