Raptor-数字分解

article/2025/11/11 1:45:43

1. 问题描述

之前写过一些 Raptor 的程序,里面经常会直接或间接遇到数字分解的要求。比如一个数 num = 1234567,把这个数字逆序输出;判断一个数是否为水仙花数,153=1^3 + 5^3 + 3^3,需要提取各位数字;或者 求一个正整数(位数不固定)的各位数字之和;判断一个数是否为回文数 等等。现在把这个需求提取出来,写成一篇博客,供后续相关需求引用参考。(上面的博客链接是跟数字分解相关的博客,有的写于本篇博客之前,有的写于本篇博客之后,有需求的可以参考相关内容。)

2. 算法分析

我们利用数组和求余运算来实现数字分解任务。Raptor 里面,"REM, MOD, %" 这三个都可以当做求余运数算符号,本例中,我们用 MOD 来指代求余数运算符号。利用求余运算,提取个位数字,然后存储在数组中。

比如 num = 1234567,数组为 a,循环变量 i=1。记一个临时变量 n=num,因为 num 可能会在后面用到,如果直接改变 num,后面就不知道原始的 num 值是多少了。然后进行如下循环操作(注意每一步完了 n, a 和 i 是如何变化的):

  • n MOD 10 = 7, a[i] = 7, n = floor(n/10) = 123456, i = i + 1,此时 i=2;
  • n MOD 10 = 6, a[i] = 6, n = floor(n/10) = 12345, i = i + 1,此时 i=3;
  • n MOD 10 = 5, a[i] = 5, n = floor(n/10) = 1234, i = i + 1,此时 i=4;
  • n MOD 10 = 4, a[i] = 4, n = floor(n/10) = 123, i = i + 1,此时 i=5;
  • n MOD 10 = 3, a[i] = 3, n = floor(n/10) = 12, i = i + 1,此时 i=6;
  • n MOD 10 = 2, a[i] = 2, n = floor(n/10) = 1, i = i + 1,此时 i=7;
  • n MOD 10 = 1, a[i] = 1, n = floor(n/10) = 0, i = i + 1,此时 i=8。

到这里,n 已经等于0了,已经完成了数字分解任务。通过上述分析可以发现,循环结束的条件就是临时变量 n = 0。通过把一些多次循环中不变的操作整合到循环里面,这样流程图的核心就有了,下面直接给出流程图。

3. 流程图

因为此篇博客仅介绍数字分解任务,为后续博客奠定基础,所以只列举数字分解任务的流程图,以免影响阅读和理解。

4. 测试结果

num = 1234567,通过左边的变量栏,可以发现已经成功把数字的各个位数存储到数组中去了。数字的位数可以通过 length_of(a) 来获取,本例中 num = 1234567,所以 length_of(a) = 7。


http://chatgpt.dhexx.cn/article/ZqPXsi8P.shtml

相关文章

C++数字分解

数字分解 【问题描述】 任何一个大于1的自然数n,总可以拆分成若干个小于n的自然数之和&#xff0c;当n等于5时有6种拆分方法&#xff1a; 511111 51112 5113 5122 514 523输入&#xff1a;一行包含一个正整数n&#xff08;1<n<10&#xff09;。 输出&#xff1a;先将拆分…

整数分解方法

题目大意&#xff1a;给定一个整数n&#xff0c;找到k个数&#xff0c;使得其和等于n。 如&#xff1a; 41111 4112; 413; 422&#xff1b; 44&#xff1b; 求其分解的所有可能&#xff0c;并输出分解表达式。 解题思路&#xff1a;要拆分整数n&#xff0c;肯定先要找到一个…

史上最全的整数分解方法(包含经典的分苹果问题)

【华为OD机试真题 2022&2023】真题目录 点这里 【华为OD机试真题】信号发射和接收 &试读& 点这里 【华为OD机试真题】租车骑绿道 &试读& 点这里 整数分解方法总结 一、加法分解&#xff1a; 题目描述&#xff1a; 给定一个正整数&#xff0c;我们可以…

js输出1-100之间所有的质数并求总个数

代码如下&#xff1a; <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><meta http-equiv"X-UA-Compa…

JavaScript输出杨辉三角形

JavaScript输出杨辉三角形 杨辉三角形的特点和规律代码如下&#xff1a;结果 杨辉三角形的特点和规律 起始行为第0行&#xff0c;第N行为N1个数从 N > 2行开始&#xff0c;每一行的数值&#xff08;不包含两边的数值&#xff09;都是上一行两个数字的相加。当 J1 或 JN1时&…

Vscode中JS输出乱码问题的解决

一直很好用vscode突然不好用了&#xff0c;原来输出正常的JS代码在输出中都是乱码。于是上网查答案&#xff0c;试了很多奇奇怪怪的答案&#xff0c;然而没有一款能够解决我这个问题。仔细琢磨&#xff0c;既然以前好用&#xff0c;现在不好用&#xff0c;应该是某个电脑操作“…

js输出九九乘法表

js输出九九乘法表 控制台输出 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"wid…

利用Javascript输出多个图片

利用Javascript输出多个图片 如果不利用Js输出图片的话&#xff0c;利用HTMLCSS输出多个图片非常麻烦的&#xff0c;工作量庞大。 建议遇到有必要多个输出的图片&#xff0c;使用js是最好的方法。 <script>var i;var arr["<img src./img/1.jpg>","…

js实现图形输出

1、矩形 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><body><script>//嵌套循环:外层循环一次&#xff0c;内层循环一轮//矩形for (var j 1; j < 5; j) {for (var i 1; …

用JS 输出 正三角形

效果图 以下是代码及 每行代码解释&#xff0c;仅供参考。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"view…

js 页面输出html,javascript中如何输出?

面对刚刚学习JavaScript的同学们&#xff0c;你是否知道JavaScript如何输出&#xff1f;下面本篇文章就来给大家介绍一下javascript的几种输出方式&#xff0c;希望对大家有所帮助。 JavaScript的输出方式&#xff1a; javascript 没有任何打印或输出的函数&#xff0c;可以通过…

js 向页面输出html,javascript怎么输出?

JavaScript怎么输出&#xff1f;输出方式有哪些&#xff1f;下面本篇文章就给大家介绍JavaScript的几种输出方式&#xff0c;希望对大家有所帮助。 方法1&#xff1a;使用window.alert()进行输出 window.alert()方法用于显示带有一条指定消息和一个【确认】 按钮的警告框。 代码…

JS 的三种输出方式

输出方式 第一种&#xff1a;alert&#xff08;&#xff09; alert() 语句&#xff1a;可以输出警告框。具有弹框效果 代码示例&#xff1a; <script type"text/javascript">alert(holle warold); </script> 效果图&#xff1a; 第二种&#xff1a;…

JavaScript的输出方式大全

helo&#xff01;小伙伴们&#xff0c;你们是不是和我一样学在学js过程中感觉这个知识不仅脑子&#xff0c;反而觉得相关的知识好多呀&#xff0c;网上的文章和视频也是&#xff0c;都不知道该怎么选了&#xff0c;没关系&#xff0c;我们慢慢来&#xff0c;这些知识点一点一点…

JS输出方式

一个程序编写完成之后&#xff0c;我们运行出的结果也有着不同的输出方式。 下面我主要介绍三种输出结果的方式&#xff1a;alert&#xff1b;console.log&#xff1b;document.write。 alert 这种输出方式是使用弹出框显示结果&#xff0c;但是只能一个一个的输出&#xff…

Android LiveData我的理解

LiveData用大众语言来来讲&#xff0c;是一个被观察者&#xff0c;也是一个数据持有类或者可以称为一个数据的包裹类。它有别于其他的观察者的重点是&#xff0c;他具有生命周期感知能力&#xff0c;这里生命周期指的是activities, fragments, or services 的生命周期。 讲到L…

Android LiveData组件详解以及LiveDataBus

转载请标明出处&#xff1a;https://blog.csdn.net/zhaoyanjun6/article/details/99749323 本文出自【赵彦军的博客】 文章目录 LiveData简介使用Java 使用方式两种订阅模式observeobserveForever 三、LiveDataBus3.1 为什么要用LiveDataBus替代EventBus和RxBus?3.2 LiveDataB…

【Android】MutableLiveData与LiveData

MutableLiveData笔记 MutableLiveData是什么&#xff1f;LiveData是什么&#xff1f;LiveData常用的方法MutableLiveData和LiveData的区别 关于postValue和setValue的机制简单理解 MutableLiveData是什么&#xff1f; public class MutableLiveData extends LiveData<T>…

Android架构——LifeCycle和LiveData原理学习总结

本文是楼主学习LifeCycle和LiveData原理的一些总结&#xff0c;本文不会长篇分析源码&#xff0c;而是利用类图和总结性的文字归纳原理。由于Livedata和LifeCycle有紧密联系&#xff0c;所以本文先总结LifeCycle原理&#xff0c;再总结LifeData原理。 本文LifeCycle基于版本an…

Android架构之LiveData组件

Jetpack组件系列文章 Android架构之LifeCycle组件 Android架构之Navigation组件(一) Android架构之Navigation组件(二) Android架构之Navigation组件(三) Android架构之Navigation组件(四) Android架构之ViewModel组件 Android架构之LiveData组件 Android架构之Room组件(一) An…