任务二:寻找吸血鬼数
打印所有4位吸血鬼数和它们的獠牙
 
提示:一共有7个;
吸血鬼数:
-该鬼的位数为偶数;
-该数的所有位中。是0的位少一半;
-该数每一位上的数字重新组合为两个位数相等的数,乘积正好等于该数。
例如:1260是吸血鬼数,他的獠牙是21和60.
-1260是4位数,4是偶数;
-1260中。是0的位数只有1个。少于一半’
-1260可以重新组合成21和60,这俩个数的位数想等都是2,21*60正好是1260。
 1 function findVampireNumbers() {
2 let sum = 0; // 记录找到的吸血鬼数的组数
3
4 for (let i = 10; i < 100; i++) { // 第一个两位数
5 for (let j = i + 1; j < 100; j++) { // 第二个两位数,大于第一个数
6 let i_val = i * j; // 计算两个两位数的乘积
7 if (i_val < 1000 || i_val > 9999) continue; // 排除乘积不是四位数的情况
8
9 let ar_str1 = Array.from(String(i_val)); // 将乘积转换为字符数组
10 let ar_str2 = Array.from(String(i) + String(j)); // 将两个两位数拼接后转换为字符数组
11 ar_str1.sort(); // 对乘积的字符数组进行排序
12 ar_str2.sort(); // 对拼接后的字符数组进行排序
13
14 if (JSON.stringify(ar_str1) === JSON.stringify(ar_str2)) {
15 // 如果排序后的字符数组相等,则找到一组吸血鬼数
16 sum++;
17 console.log(`第${sum}组: ${i}*${j}=${i_val}`);
18 console.log(`吸血鬼是${i_val},獠牙是${i}、${j}`);
19 }
20 }
21 }
22
23 console.log(`共找到${sum}组吸血鬼数`);
24 }

代码解释:

这段代码用于寻找吸血鬼数。
函数findVampireNumbers中:
初始化变量sum为0,用于记录找到的吸血鬼数的组数。
使用两个嵌套的for循环遍历所有可能的两位数。
在循环中,计算两个两位数的乘积并存储在变量i_val中。
如果乘积不是四位数(范围在1000到9999之外),则继续下一轮循环。
将乘积转换为字符数组ar_str1,将两个两位数拼接后转换为字符数组ar_str2。
对字符数组进行排序。
如果排序后的字符数组相等,则找到一组吸血鬼数。增加sum的值,并打印出组号、乘法表达式和吸血鬼数。
循环结束后,打印出总共找到的吸血鬼数的组数。
通过这段代码,我们可以寻找并打印出所有满足条件的吸血鬼数及其组合。
 

算法2:寻找吸血鬼数(JS)的更多相关文章

  1. 九度OJ 1214 寻找丑数【算法】

    题目地址:http://ac.jobdu.com/problem.php?pid=1214 题目描述: 把只包含因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因 ...

  2. [经典算法题]寻找数组中第K大的数的方法总结

    [经典算法题]寻找数组中第K大的数的方法总结 责任编辑:admin 日期:2012-11-26   字体:[大 中 小] 打印复制链接我要评论   今天看算法分析是,看到一个这样的问题,就是在一堆数据 ...

  3. Java求吸血鬼数算法(通用)

    /*吸血鬼数字是指位数为偶数的数字,可以由一 * 对数字相乘而得到,而这对数字各包含乘积的一半位数的数字, * 其中从最初的数字中选取的数字可以任意排序. * 以两个0结尾的数字是不允许的. * * ...

  4. 前端与算法 leetcode 1. 两数之和

    目录 # 前端与算法 leetcode 1. 两数之和 题目描述 概要 提示 解析 解法一:暴力法 解法二:HashMap法 算法 传入[1, 2], [11, 1, 2, 3, 2]的运行结果 执行 ...

  5. 基于visual Studio2013解决面试题之0701寻找丑数

     题目

  6. 算法训练 K好数

      算法训练 K好数   时间限制:1.0s   内存限制:256.0MB 问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数 ...

  7. 【微收藏】FourShadows.js – 时间感知的算法驱动的图标阴影JS库

    废话一箩筐,筐筐有心得 不小心养成了一个刷微博的习惯,主要还是关注一些前端人士,学习一些前端方面的知识,看到大家都有一些刷微博的小习惯.有的是转发一下,转发内容来一个标记(MARK).也有评论中标记为 ...

  8. 算法训练 K好数 解析

    算法训练 K好数 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K ...

  9. 实现一个算法,寻找字符串中出现次数最少的、并且首次出现位置最前的字符 如"cbaacfdeaebb",符合要求的是"f",因为他只出现了一次(次数最少)。并且比其他只出现一次的字符(如"d")首次出现的位置最靠前。

    实现一个算法,寻找字符串中出现次数最少的.并且首次出现位置最前的字符如"cbaacfdeaebb",符合要求的是"f",因为他只出现了一次(次数最少).并且比其 ...

  10. P1820 寻找AP数

    P1820 寻找AP数两个性质,分解质因数后,连续,且指数递减,dfs就完了 #include <iostream> #include <cstdio> #include &l ...

随机推荐

  1. 【技术积累】Python中的NumPy库【二】

    NumPy库的主要类有哪些? NumPy库的主要类包括: ndarray:N维数组对象,是NumPy最重要的类之一.它是Python中数组的基本数据结构,可以进行高效的数学计算和数据处理操作. ufu ...

  2. 常见的Web安全攻击类型及其应对方法

    目录 1. 引言 2. 技术原理及概念 3. 实现步骤与流程 4. 应用示例与代码实现讲解 5. 优化与改进 6. 结论与展望 7. 附录:常见问题与解答 常见的Web安全攻击类型及其应对方法 随着网 ...

  3. Set 接口及其常用方法

    Set 接口基本介绍 Set接口是Collection接口的一个子接口,其主要特点如下: 不允许重复元素:Set接口的实现类不会包含重复的元素.更正式地说,不包含任何一对使得e1.equals(e2) ...

  4. 前端关于table的设置

    表格超长度后加... table{ table-layout:fixed; } td{ overflow:hidden; text-overflow:ellipsis; white-space:now ...

  5. 理解ASP.NET Core - 限流(Rate Limiting)

    注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 概述 在微服务化的架构设计中,网关扮演着重要的看门人角色,它所提供的功能之一就是限流.而对于众 ...

  6. ChatGPT的探索与实践-业务应用篇

    本篇文章主要介绍在实际的开发过程当中,如何使用GPT帮助开发,优化流程,恰逢今年京东20周年庆,文末会介绍如何与618大促实际的业务相结合,来提升应用价值.全是干货,且本文所有代码和脚本都是利用GPT ...

  7. PostgreSQL 10 文档: 系统表

    第 51 章 系统目录 目录 51.1. 概述 51.2. pg_aggregate 51.3. pg_am 51.4. pg_amop 51.5. pg_amproc 51.6. pg_attrde ...

  8. opencv中的函数

    读入图像:cv2.imread(),第一个参数:未文件路径,第二个参数:告诉函数要以何种方式读取图片. cv2.IMREAD_COLOR:读入一幅彩色图像.图像的透明度会被忽略. cv2.IMREAD ...

  9. 代码随想录算法训练营第三天| LeetCode 242.有效的字母异位词 349. 两个数组的交集 1. 两数之和

    242.有效的字母异位词       卡哥建议: 这道题目,大家可以感受到数组用来做哈希表给我们带来的遍历之处.  题目链接/文章讲解/视频讲解: https://programmercarl.com ...

  10. 如何用windows任务视图管理多个程序,提高.net开发效率

    在 Windows 操作系统中,任务栏是一个非常重要的工具栏,用来显示当前正在运行的程序和任务.如果同时运行了很多程序,任务栏上的图标就会变得非常拥挤,不方便管理和切换.为了提高工作效率,可以通过任务 ...