c++求助!循环数
发布网友
发布时间:2024-10-02 17:25
我来回答
共3个回答
热心网友
时间:2024-10-03 21:49
C++我好久没用过了,所以不大可能给你程序。我用AS3帮你实现了一下,大致思路如下:
1. 将输入数字P转换成字符串,然后用字符串方法获取这个数字的长度n
2. 将输入数字P的每一位数字存到一个数组里面,并按照从小到大排序(AS3有个方法可以一步到位,不知道C++有没有数组排序的方法),然后把排序后数组输出字符串One
3. 定义一个布尔型变量flag,且flag=true
4. 写一个for循环,自变量为i,其中1=<i<=n,步长为1;
5. 在每个循环中计算P*i,然后重复步骤1和步骤2,得到字符串Two,比较字符串One和Two,如果不相同置flag=false。
6. 在循环结束后,如果flag依然等于true,那么这个数字就是循环数。
你可以把这些步骤写成一个function,这可能更容易重复利用一些。
你如果想让输入的数字范围大一些,你可以在声明变量的时候,把它声明成双精度或者四精度的。
我试着写一个循环寻找循环数,范围是1-150000,居然只有一个循环数,就是142857。真是暴汗,不知道循环数有什么意义,太少了!
热心网友
时间:2024-10-03 21:50
高精度乘法+搜索
热心网友
时间:2024-10-03 21:53
思路:
读数进来-》进行运算-》出来的新数-》找到新数的最小值,断开,以最小值为头进行排列-》对读进来的数进行最小值从头排列-》比对-》继续循环
形象点就是这样
142857 *2 = 285714
对285714改写成 142857(从最小的地方开始断) A
对142857 也进行同样改写 B
比对a和b 就可以了