第六届蓝桥杯 JavaA 循环节长度
循环节长度
两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。
比如,11/13=6=>0.846153846153… 其循环节为[846153] 共有6位。
下面的方法,可以求出循环节的长度。
请仔细阅读代码,并填写划线部分缺少的代码。
import java.util.Vector;
/**
* 每次是将n/m的余数加入到vector中,目的是下一次for循环可以利用余数*10/m得到新的余数,如此往复
* ,直到vector中出现了所求余数,说明出现循环小数。
*
* @description TODO
* @author frontier
* @time 2019年3月23日 下午10:13:50
*
*/
public class 代码填空4循环节长度 {
public static void main(String[] args) {
System.out.println(f(11, 13));
}
public static int f(int n, int m) {// 11 13
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)
return ——————————————————————————————————; // 填空
}
}
}
思路:
* 每次是将n/m的余数加入到vector中,目的是下一次for循环可以利用余数*10/m得到新的余数,如此往复 * ,直到vector中出现了所求余数,说明出现循环小数。若出现0则不是循环小数,返回0.
答案: v.size() - v.indexOf(n)