前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >网易递归编程题,魔法币

网易递归编程题,魔法币

作者头像
RobinsonZhang
发布于 2018-08-28 05:03:26
发布于 2018-08-28 05:03:26
25100
代码可运行
举报
运行总次数:0
代码可运行

场景描述

小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币。 魔法机器1:如果投入x个魔法币,魔法机器会将其变为2x+1个魔法币 魔法机器2:如果投入x个魔法币,魔法机器会将其变为2x+2个魔法币 小易采购魔法神器总共需要n个魔法币,所以小易只能通过两台魔法机器产生恰好n个魔法币,小易需要你帮他设计一个投入方案使他最后恰好拥有n个魔法币。

输入描述: 输入包括一行,包括一个正整数n(1 ≤ n ≤ 10^9),表示小易需要的魔法币数量。

输出描述: 输出一个字符串,每个字符表示该次小易选取投入的魔法机器。其中只包含字符’1’和’2’。

比如输入10,返回122

思路解析

递归

得到操作方案首先想到的递归,原因有以下几方面: 每一步的操作与上一步具有直接联系,而需要获得的最终结果显性的是由最后一次全部转化的。向前递归的界限也很明显,就是没有魔法币。

最终方案如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var arr=[]
const toOpt = (n)=>{
  if(n>0){
    if(n%2==0){
    n=(n-2)/2
    arr.push('2')
    }else{
      n=(n-1)/2
      arr.push('1')
    }
    return toOpt(n)
  }else{
    let printStr=arr.reverse().join('')
    console.log(printStr)
    arr.length=0
  }
}

用户输入:readline模块

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});
rl.question('', (anwser) => {
  // TODO: Log the answer in a database
  console.log(`${anwser}`)
  rl.close();
});

验证:通过所有测试用例

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-03-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
几道算法题记录
(1)给定一个十进制,求Protocol Buffers的 Varint编码;给定一个16进制的 ZigZag编码,求原码;
meteoric
2021/11/19
2290
程序员进阶之路之面试题与笔试题集锦(三)线上编程题
####1.奇数偶数问题 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币。 魔法机器1:如果投入x个魔法币,魔法机器会将其变为2x+1个魔法币 魔法机器2:如果投入x个魔法币,魔法机器会将其变为2x+2个魔法币 小易采购魔法神器总共需要n个魔法币,所以小易只能通过两台魔法机器产生恰好n个魔法币,小易需要你帮他设计一个投入方案使他最后恰好拥有n个魔法币。
学到老
2019/01/25
6420
程序员进阶之路之面试题与笔试题集锦(三)线上编程题
算法之递归(js版本)
相信在数学中很常见这个概念,实际在编程中也很常见这样的思维。递归通俗的来说,就是通过不断的将当前问题进行分解,向前追溯直到终点然后再反推求解的过程。
RobinsonZhang
2018/11/07
3.4K0
精研3道简单的网易2018校招编程题
下面三道编程题来自网易2018校招编程题,这三道应该来说是非常简单的编程题了,这些题目大家稍微有点编程和数学基础的话应该没什么问题。看答案之前一定要自己先想一下如果是自己做的话会怎么去做,然后再对照这我的答案看看,和你自己想的有什么区别?那一种方法更好?
用户2164320
2018/07/09
1.2K1
精研3道简单的网易2018校招编程题
【实战】从零开始使用JavaScript制作自己的命令行(CLI工具)
我们每天都使用CLI程序(例如Terminal,cmd,Powershell等)进行软件开发。你使用的每个工具本质上都是其他软件工程师的产品,我们也可以制作自己的CLI工具。
张张
2020/05/07
1.5K0
【实战】从零开始使用JavaScript制作自己的命令行(CLI工具)
记一次华为机试
华为机试分为 3 题,两题 100 分,一题 200 分,压线 150 分算你过,时间150分钟,支持多语言环境(牛客网),考试时需全程打开摄像头,电脑屏幕分享,手机打开某小程序(可用计算器)不退出,可用本地 IDE, 会有一些测试题给你熟悉环境预热的。
江涛学编程
2021/03/16
9.5K1
十六进制记忆训练shell交互小程序游戏
最近正在准备软考,发现自己对10进制转二进制 计算记忆能力不怎么深了。当然,在本子上算出来,然后背一背也记得住的,但是那就有点乏味了。所以花半个小时,写了shell交互小程序.
Jacky-易小天
2024/03/13
1210
十六进制记忆训练shell交互小程序游戏
一键JS混淆加密:功能集成到鼠标右键菜单
目标:将“JS混淆加密”功能集成到鼠标右键菜单,一键点击完成JavaScript代码混淆加密。
用户8703799
2024/04/02
2180
一键JS混淆加密:功能集成到鼠标右键菜单
Nodejs进阶:readline实现日志分析+简易命令行工具
模块概览 readline是个非常实用的模块。如名字所示,主要用来实现逐行读取,比如读取用户输入,或者读取文件内容。常见使用场景有下面几种,本文会逐一举例说明。本文相关代码可在笔者github上找到。
IMWeb前端团队
2017/12/28
1.4K0
从服务端生成Excel电子表格(Node.js+SpreadJS)
Node.js是一个基于Chrome V8引擎的JavaScript运行环境,通常用于创建网络应用程序。它可以同时处理多个连接,并且不像其他大多数模型那样依赖线程。
葡萄城控件
2022/05/09
3.3K0
从服务端生成Excel电子表格(Node.js+SpreadJS)
如何用 Node.js 实现一个微型 CLI
命令行界面(英语:command-line interface,缩写:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。
林小帅
2020/04/06
1K0
如何用 Node.js 实现一个微型 CLI
Week5-脚手架创建项目流程设计和开发
注:由于我本地之前已经配好了,所以我本地的启动方式为:mongod --config /usr/local/etc/mongod.conf 查看mongodb.conf文件,我本地的dbpath路径为:/usr/local/var/mongodb 安装第三方工具:Robot 3T 连接到本地后:
六个周
2022/10/28
7710
Week5-脚手架创建项目流程设计和开发
Socket的讲解
伙伴们,如果你觉得我写的文章对你有帮助就给zayyo点一个赞👍或者关注➕都是对我最大的支持。当然你也可以加我微信:IsZhangjianhao,邀你进我的前端学习交流群,一起学习前端,成为更优秀的工程师~
zayyo
2023/11/18
2121
PTA平台nodejs的输入输出控制
const readline = require('readline') //在这里引入 let testGroupNum = 0 let groupList = [] // { num: number, numArr: int[] } let groupInfo = {} const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }) let k = -1 //先给行数置-1,表示还
Mr.Teen
2020/04/16
1.1K0
教程 | 如何使用JavaScript构建机器学习模型
选自:hackernoon 作者:Abhishek Soni 参与:李泽南 目前,机器学习领域建模的主要语言是 Python 和 R,前不久腾讯推出的机器学习框架 Angel 则支持 Java 和 S
机器之心
2018/05/08
1.2K0
教程 | 如何使用JavaScript构建机器学习模型
华为OD 机试 - 贪心歌手(Java & Python & C++)
第一行两个数字 T 和 N,中间用空格隔开,T 代表总天数; N 代表路上经过 N 座城市;
五分钟学算法
2024/04/14
7530
华为OD 机试 - 贪心歌手(Java  & Python & C++)
MCP SDK 快速接入 DeepSeek 并添加工具!万万没想到MCP这么简单好用!
重新整理了上篇文章,主要修正了错误的地方,加上了正确的截图和代码!感谢大家的积极指正!
萌萌哒草头将军
2025/04/19
5590
MCP SDK 快速接入 DeepSeek 并添加工具!万万没想到MCP这么简单好用!
MCP TypeScript SDK 初体验:挑战快速搭建一个 AI 应用!
这篇文章记录一下我用 MCP TypeScript SDK 实现一个自包含的 AI 聊天应用的过程:内部包含 MCP 服务器提供上下文,客户端拿上下文再去调 LLM 接口拿回答!
萌萌哒草头将军
2025/04/11
3000
MCP TypeScript SDK 初体验:挑战快速搭建一个 AI 应用!
如何使用 Node.js 代码下载 Github issue 到本地
国内的开发者们,有使用 github 上开源的代码仓库上通过提交 issue 的方式进行一些技术或者非技术层面的讨论。
编程小妖女
2025/01/03
1790
如何使用 Node.js 代码下载 Github issue 到本地
用 Puppeteer 把繁琐工作给自动化了,太爽啦!
这意味着如果文中有几十张图片,那我需要单独把这几十张图片保存到本地,然后光标定位到对应位置,点击上传图片,把图片插进去。
神说要有光zxg
2023/08/29
5380
用 Puppeteer 把繁琐工作给自动化了,太爽啦!
相关推荐
几道算法题记录
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验