c++求助!循环数
1个回答
关注
展开全部
亲,1. 将输入数字P转换成字符串,然后用字符串方法获取这个数字的长度n
2. 将输入数字P的每一位数字存到一个数组里面,并按照从小到大排序(AS3有个方法可以一步到位,不知道C++有没有数组排序的方法),然后把排序后数组输出字符串One
3. 定义一个布尔型变量flag,且flag=true
4. 写一个for循环,自变量为i,其中1=
5. 在每个循环中计算P*i,然后重复步骤1和步骤2,得到字符串Two,比较字符串One和Two,如果不相同置flag=false。
6. 在循环结束后,如果flag依然等于true,那么这个数字就是循环数。
你可以把这些步骤写成一个function,这可能更容易重复利用一些。
你如果想让输入的数字范围大一些,你可以在声明变量的时候,把它声明成双精度或者四精度的。
我试着写一个循环寻找循环数,范围是1-150000,居然只有一个循环数,就是142857。真是暴汗,不知道循环数有什么意义
咨询记录 · 回答于2021-11-20
c++求助!循环数
您好,您的问题我已经看到了,正在整理答案,请稍等一会儿哦
亲,1. 将输入数字P转换成字符串,然后用字符串方法获取这个数字的长度n2. 将输入数字P的每一位数字存到一个数组里面,并按照从小到大排序(AS3有个方法可以一步到位,不知道C++有没有数组排序的方法),然后把排序后数组输出字符串One3. 定义一个布尔型变量flag,且flag=true4. 写一个for循环,自变量为i,其中1=
那我能问问,一个for循环中每次可以得到一个数,我想找出这一个循环中所有相同数出现的次数应该怎么办
但是如果应用在一个FOR循环中,取到的多个随机值就基本相同了。原因如下:用系统时间做随机种子并不保险,如果应用程序在一个较快的计算机上运行,则该计算机的系统时钟可能没有时间在此构造函数的调用之间进行更改,Random 的不同实例的种子值可能相同 解决思路: 循环体中加Thread.Sleep(1);----------这样就使得循环中的时间不同了,然后取Ticks,截取后9位为INT做种子,保证每次种子不同,可取到随机值 。。 Thread.Sleep(1); long tick = DateTime.Now.Ticks;//一个以0.1纳秒为单位的时间戳,18位 int seed = int.Parse(tick.ToString().Substring(9)); // int类型的最大值: 2147483647 ------- for (int i = 0; i < 20; i++) { Thread.Sleep(1); long tick = DateTime.Now.Ticks;//一个以0.1纳秒为单位的时间戳,18位 int seed = int.Parse(tick.ToString().Substring(9)); // int类型的最大值: 2147483647 //或者使用unchecked((int)tick)也可 Random ran = new Random(seed); int iResult; int iUp = 100; int iDown = 50; iResult = ran.Next(iDown, iUp); Response.Write(iResult + ""); Response.Write( seed.ToString() + "---" + unchecked((int)tick) + "");