最小的重复数字中的1的个数
在这个问题中,我们只需要打印最小单位中的 1 的数量。
reunit 是一个正数,如休闲数学中的 11、111 或 1111,只有数字 1。reunit 的形式为 $mathrm{(10*n-1)/9}$
示例
$mathrm{(10*10-1)/9}$ 给出 11。
$mathrm{(10*100-1)/9}$ 给出 111。
$mathrm{(10*1000-1)/9}$ 给出 1111。
上面的问题指出,我们给定任意正整数 N,其单位数字为 3,我们需要确定能被给定数字 N 整除的最小单位。
例如,
如果我们给出 N=13。
输出:6
N,即 13 完美整除 111111 得到 8547。
111111 是最小的重单位,可被 13 整除。因此,最小重单位中的 1 数量为 6,给出所需的输出。
算法
因为我们知道重复次数是 1、11、111、1111 等等。 x 之后的后续 reunit 可以定义为 $mathrm{(x*10+1)}$。
该算法仅基于这样的概念:如果整数 N 留下的余数为 rem,则重新单位余数将始终为 $mathrm{(rem*10+1)%N}$。
确定重新单位数可能会过于繁琐,因为该数字可能非常大,因此我们将通过更新余数直到其变为 0 并通过每一步更新来计算 1 的数量来找到答案。使余数为 0 所需的迭代次数将是最小重单位中 1 的数量。
下面是算法的逐步描述 -
第 1 步− 将变量剩余声明为 1,以存储每次 N 剩下的余数 iteration 和 itr 为 1 来计算迭代次数。
第 2 步 − 使用 while 循环,直到余数变为 0。 p>
第 3 步 − 每一步,更新余数并增加 itr 1.
第 4 步 − 一旦余数等于 0,则返回 itr。
让我们对 N=13 尝试这种方法。
因为我们在 while 循环之前将剩余部分和 itr 声明为 1。
现在,
在第 1 次迭代中,余数将为 (余数*10+1)%N,即 11。 余数=11且itr=2。 按照同样的算法,直到余数变为0。
在迭代 2 时,余数=7 且 itr=3
在迭代 3 时,余数=6 且 itr=4
在迭代 4 时,余数=9 且 itr=5
在迭代 5 时,余数=0 且 itr=6。
由于余数变为 0,我们将返回 itr,即 6,这是所需的输出。
方法
下面是上述方法在 C++ 中的实现 -
#include <iostream> #include<bits/stdc++.h> using namespace std; //function to calculate no of ones in smallest repunit int numberOfones(int N){ int remainder=1; int itr=1; // to store no of iterations while(remainder!=0){ //update remainder remainder=(remainder*10 + 1)% N; itr++; //increase itr by 1 to get number of 1's in repunit } return itr; } int main(){ int N=23; cout<<numberOfones(N); return 0; }
输出
22
能被 23 整除的最小重单位数将由 22 个 1 组成。
结论
在上面的文章中,我们尝试解决了求出能被任意个位数为3的正整数N整除的最小单位的个数的问题。希望这篇文章能帮助你理清这个问题的概念.
以上是最小的重复数字中的1的个数的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

待机是一种锁定屏幕模式,当iPhone插入充电器并以水平(或横向)方向定位时激活。它由三个不同的屏幕组成,其中一个是全屏时间显示。继续阅读以了解如何更改时钟的样式。StandBy的第三个屏幕显示各种主题的时间和日期,您可以垂直滑动。某些主题还会显示其他信息,例如温度或下一个闹钟。如果您按住任何时钟,则可以在不同的主题之间切换,包括数字、模拟、世界、太阳能和浮动。Float以可自定义的颜色以大气泡数字显示时间,Solar具有更多标准字体,具有不同颜色的太阳耀斑设计,而World则通过突出显示世界地

生成随机数或字母数字字符串的能力在许多情况下都会派上用场。您可以使用它在游戏中的不同位置生成敌人或食物。您还可以使用它向用户建议随机密码或创建文件名来保存文件。我写了一篇关于如何在PHP中生成随机字母数字字符串的教程。我在这篇文章的开头说,几乎没有事件是真正随机的,同样的情况也适用于随机数或字符串生成。在本教程中,我将向您展示如何在JavaScript中生成伪随机字母数字字符串。在JavaScript中生成随机数让我们从生成随机数开始。我想到的第一个方法是Math.random(),它返回一个浮

在win10上使用edge浏览器的小伙伴们很多都遇到了网页一直不停重复打开的问题很是头疼,那么该怎么解决呢?下面就一起来看看详细的解决方法吧。edge浏览器一直重复打开网页怎么办:1、进入edge浏览器,点击右上角的三个点。2、在任务栏中点击“设置”。3、找到“Microsoftedge打开方式”。4、点击下拉,选择“起始页”。5、完成后重新启动浏览器即可解决问题。

在任何语言中编写程序时,将数字表示为输出是一项有趣且重要的任务。对于整数类型(short、long或medium类型的数据),很容易将数字表示为输出。对于浮点数(float或double类型),有时我们需要将其四舍五入到特定的小数位数。例如,如果我们想将52.24568表示为三位小数,需要进行一些预处理。在本文中,我们将介绍几种技术,通过四舍五入将浮点数表示为特定的小数位数。在不同的方法中,使用类似C的格式化字符串、使用精度参数以及使用数学库中的round()函数是很重要的。让我们逐个来看。带有

在本文中,我们将讨论查找1到n(给定)之间的数字的问题,这些数字不能被2到10之间的任何数字整除。让我们通过一些例子来理解这一点-Input:num=14Output:3Explanation:Therearethreenumbers,1,11,and13,whicharenotdivisible.Input:num=21Output:5Explanation:Therearefivenumbers1,11,13,17,and19,whicharenotdivisible.求解的方法简单方法如果

我们都知道不是任何数字的平方的数字,如2、3、5、7、8等。非平方数有N个,不可能知道每个数字。因此,在本文中,我们将解释有关无平方数或非平方数的所有内容,以及在C++中查找第N个非平方数的方法。第N个非平方数如果一个数是整数的平方,则该数被称为完全平方数。完全平方数的一些例子是-1issquareof14issquareof29issquareof316issquareof425issquareof5如果一个数不是任何整数的平方,则该数被称为非平方数。例如,前15个非平方数是-2,3,5,6,

Java中的数字重要的是要理解数字类不是一个有形的类,而是一个抽象的类。在它内部,我们有一组定义其功能的包装类。这些包装类包括Integer、Byte、Double、Short、Float和Long。您可能会注意到,这些与我们之前讨论的基本数据类型相同,但它们表示为具有大写名称的单独类,以符合类命名约定。根据特定函数或程序范围的要求,编译器自动将原始数据类型转换为对象,反之亦然,并且数字类是java.lang包的一部分。此过程称为自动装箱和拆箱。通过掌握数字类及其对应的包装类的抽象性质,我们可以

如何在Oracle数据库中仅提取一条重复数据?在日常的数据库操作中,我们经常会遇到需要提取重复数据的情况。有时候我们希望找出重复数据中的一条,而不是将所有重复数据都列出来。在Oracle数据库中,我们可以借助一些SQL语句来实现这个目的。接下来将介绍如何在Oracle数据库中仅提取一条重复数据,并提供具体的代码示例。1.使用ROWID函数ROWID是Ora
