C++程序 计算可被4整除的旋转次数
给定一个较大的正数字符串,计算给定数字的所有可以被4整除的旋转次数。
示例:
对于大数,每个数字旋转并除以4很困难。 因此,使用“可被4整除性”属性,即,如果数字的最后2位可被4整除,则该数字可被4整除。 在这里,我们不会实际旋转数字并检查最后2位是否可被4整除,而是计算以循环方式可被4整除的连续对数。
说明:
考虑数字928160
其 旋转 是928160, 092816, 609281, 160928,
816092, 281609。
现在从原始数字928160中形成成对数,
如方法中所述。
成对数: (9,2), (2,8), (8,1), (1,6),
(6,0), (0,9)
我们可以观察到由这些成对数形成的2位数,即92、28、81、16、60、09,在某些旋转的最后2位数中出现。因此,检查这些成对数的可被除性即可得到所需的旋转次数。
注意: 单个数字可以直接检查可被除性。
下面是该方法的实现。
输出:
时间复杂度 : O(n) 其中n是输入数字的位数。
辅助空间: O(1)