打卡信奥刷题(19)用Scratch图形化工具信奥B3972 [语言月赛 202405] 二进制 题解

本文主要是介绍打卡信奥刷题(19)用Scratch图形化工具信奥B3972 [语言月赛 202405] 二进制 题解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

进制转换是经典的编程题,尤其是10进制转换为2进制。方法是拿给定的数,不断地除2,将余数放在对应的位置,剩下的数为对应数除2向下取整

[语言月赛 202405] 二进制

题目描述

在介绍十进制转二进制的篇目中,我们总会看到这样的方法:

  • 求出这个数字除以 2 2 2余数,然后将余数写在右侧,用商替换原来的数字;
  • 重复以上过程直到这个数字变为 0 0 0
  • 最后将右侧的所有余数倒序排列,得到的就是原数字的二进制形式。

小 S 也在学习二进制,不过她很懒,不想计算那么多次除法。于是她找到了你,希望你能为她写一个程序,帮助她得到上述过程中所有的余数

输入格式

一行,一个正整数 n n n,表示她想要转成二进制的数字。

输出格式

输出若干行,每一行两个数字 x i x_i xi y i y_i yi,表示第 i i i 次除法得到的商和余数。你应该保证 y i y_i yi 0 0 0 1 1 1

样例 #1

样例输入 #1

9

样例输出 #1

4 1
2 0
1 0
0 1

样例 #2

样例输入 #2

22

样例输出 #2

11 0
5 1
2 1
1 0
0 1

样例 #3

样例输入 #3

1

样例输出 #3

0 1

提示

样例 1 解释

首先, 9 = 2 × 4 + 1 9 = 2 \times 4 + 1 9=2×4+1,所以第一行输出 4 1,并令 9 9 9 变为 4 4 4
然后, 4 = 2 × 2 + 0 4 = 2 \times 2 + 0 4=2×2+0,所以第二行输出 2 0,并令 4 4 4 变为 2 2 2
接着, 2 = 2 × 1 + 0 2 = 2 \times 1 + 0 2=2×1+0,所以第三行输出 1 0,并令 2 2 2 变为 1 1 1
最后, 1 = 2 × 0 + 1 1 = 2 \times 0 + 1 1=2×0+1,所以第四行输出 0 1,并令 1 1 1 变为 0 0 0。过程结束。

样例 2 解释

首先, 22 = 2 × 11 + 0 22 = 2 \times 11 + 0 22=2×11+0,所以第一行输出 11 0,并令 22 22 22 变为 11 11 11
然后, 11 = 2 × 5 + 1 11 = 2 \times 5 + 1 11=2×5+1,所以第二行输出 5 1,并令 11 11 11 变为 5 5 5
接着, 5 = 2 × 2 + 1 5 = 2 \times 2 + 1 5=2×2+1,所以第三行输出 2 1,并令 5 5 5 变为 2 2 2
再然后, 2 = 2 × 1 + 0 2 = 2 \times 1 + 0 2=2×1+0,所以第四行输出 1 0,并令 2 2 2 变为 1 1 1
最后, 1 = 2 × 0 + 1 1 = 2 \times 0 + 1 1=2×0+1,所以第五行输出 0 1,并令 1 1 1 变为 0 0 0。过程结束。

数据范围

对于前 30 % 30 \% 30% 的数据,保证 n n n 为若干个 2 2 2 的乘积,且 1 ≤ n ≤ 1 0 9 1 \leq n \leq 10^9 1n109
对于另 30 % 30 \% 30% 的数据,保证除法最多只进行 3 3 3 次;
对于 100 % 100 \% 100% 的数据,保证 1 ≤ n ≤ 1 0 18 1 \leq n \leq 10^{18} 1n1018

Scratch实现

在这里插入图片描述
接下来我会不断用scratch来实现信奥比赛中的算法题,感兴趣的请关注,我后续将继续分享相关内容

这篇关于打卡信奥刷题(19)用Scratch图形化工具信奥B3972 [语言月赛 202405] 二进制 题解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1004892

相关文章

Python pyinstaller实现图形化打包工具

《Pythonpyinstaller实现图形化打包工具》:本文主要介绍一个使用PythonPYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的... 目录1.简介2.运行效果3.相关源码1.简介一个使用python PYQT5制作的关于pyinstall

C语言线程池的常见实现方式详解

《C语言线程池的常见实现方式详解》本文介绍了如何使用C语言实现一个基本的线程池,线程池的实现包括工作线程、任务队列、任务调度、线程池的初始化、任务添加、销毁等步骤,感兴趣的朋友跟随小编一起看看吧... 目录1. 线程池的基本结构2. 线程池的实现步骤3. 线程池的核心数据结构4. 线程池的详细实现4.1 初

详解Spring Boot接收参数的19种方式

《详解SpringBoot接收参数的19种方式》SpringBoot提供了多种注解来接收不同类型的参数,本文给大家介绍SpringBoot接收参数的19种方式,感兴趣的朋友跟随小编一起看看吧... 目录SpringBoot接受参数相关@PathVariable注解@RequestHeader注解@Reque

使用Python制作一个PDF批量加密工具

《使用Python制作一个PDF批量加密工具》PDF批量加密‌是一种保护PDF文件安全性的方法,通过为多个PDF文件设置相同的密码,防止未经授权的用户访问这些文件,下面我们来看看如何使用Python制... 目录1.简介2.运行效果3.相关源码1.简介一个python写的PDF批量加密工具。PDF批量加密

使用Java编写一个文件批量重命名工具

《使用Java编写一个文件批量重命名工具》这篇文章主要为大家详细介绍了如何使用Java编写一个文件批量重命名工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录背景处理1. 文件夹检查与遍历2. 批量重命名3. 输出配置代码片段完整代码背景在开发移动应用时,UI设计通常会提供不

Python按条件批量删除TXT文件行工具

《Python按条件批量删除TXT文件行工具》这篇文章主要为大家详细介绍了Python如何实现按条件批量删除TXT文件中行的工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.简介2.运行效果3.相关源码1.简介一个由python编写android的可根据TXT文件按条件批

详解Python中通用工具类与异常处理

《详解Python中通用工具类与异常处理》在Python开发中,编写可重用的工具类和通用的异常处理机制是提高代码质量和开发效率的关键,本文将介绍如何将特定的异常类改写为更通用的ValidationEx... 目录1. 通用异常类:ValidationException2. 通用工具类:Utils3. 示例文

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验