第六届蓝桥杯 循环节长度 JAVA

两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。

比如,11/13=6=>0.846153846153… 其循环节为[846153] 共有6位。

下面的方法,可以求出循环节的长度。

请仔细阅读代码,并填写划线部分缺少的代码。

思路:把重复的小数位数出来,填空位置缺的内容就是:总长度 - 之前取的重复长度

import java.util.Vector;

public class Main {

	public static void main(String[] args) {
		System.out.println(f(11, 13));
	}

	public static int f(int n, int m) {
		n = n % m;
		Vector<Integer> v = new Vector<Integer>(); // 可实现自动增长的对象数组。 
		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);    // 填空
		} 
	}
}

小剧场:独自品尝 这大把好时光

发布了202 篇原创文章 · 获赞 149 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_43771695/article/details/105130516
今日推荐