当前位置: 代码迷 >> 综合 >> 蓝桥杯之循环节的长度
  详细解决方案

蓝桥杯之循环节的长度

热度:72   发布时间:2023-09-22 05:57:20.0

分享一个蓝桥杯的题目,在蓝桥杯中算是偏简单。可我就是想写(手动狗头)

是一个代码填空题,给出的代码如下

public static int func(int n,int m){n=n%m;Vector v=new Vector();for(;;){v.add(n);n*=10;n=n%m;if(n==0) return 0;if (v.indexOf(n)>0) 此处有空;}}

以上代码的作用是求两个数字相除的循环节长度。求循环节长度如果自己干想的话如果没有找对思路应该是很难的,我之前就一直在想怎么依靠求出来的商值去求。但依靠商值真的是个错误的想法。因为循环节可能是1231234这样的,这样程序碰到两个123就以为123就是所要求的了(不要抬杠,1231231234也有可能)。这里使用的是判断余数的做法,余数(也就是下一轮的被除数)相同,除数相同,商当然也相同。

这个题说他简单是因为这就是模拟的除法的过程,如果你清楚怎么实现大数运算的话就不在话下了。

好的,那么答案究竟是什么呢?接下来就是见证满分的时刻

return v.size()-v.indexOf(n)

 

  相关解决方案