6-4循环节长度Java

/*循环节长度
两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。
比如,11/13=6=>0.846153846153.....  其循环节为[846153] 共有6位。
下面的方法,可以求出循环节的长度。
请仔细阅读代码,并填写划线部分缺少的代码。
	public static int f(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)  _________________________________ ;  //填空
		//答案:v.size()-v.indexOf(n) 
		}
	}*/
/*题中的6代表循环节长度
 * 先把填空行注释掉,然后运行,发现没有输出,则必然填空位置有return;
 * 然后用debug看过程,分析出结果。
 * 不仅要用的测试用例,还需自己举例验证。
 */
import java.util.Vector;
public class Main{
	public static void main(String[] args) {
		System.out.println(f(11,13));
		System.out.println(f(7,8));
	}
	public static int f(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)  return v.size()-v.indexOf(n) ;  //填空
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_41629684/article/details/88616019
6-4