第六届蓝桥杯JavaB组——第4题循环节长度
Java代码:
1 package com.lzp.lanqiaosix.p4; 2 3 import java.util.Vector; 4 5 /** 6 * @Author LZP 7 * @Date 2021/3/7 14:24 8 * @Version 1.0 9 * 10 循环节长度 11 12 两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。 13 比如,11/13=6=>0.846153846153..... 其循环节为[846153] 共有6位。 14 下面的方法,可以求出循环节的长度。 15 16 请仔细阅读代码,并填写划线部分缺少的代码。 17 18 public static int f(int n, int m) 19 { 20 n = n % m; 21 Vector v = new Vector(); 22 23 for(;;) 24 { 25 v.add(n); 26 n *= 10; 27 n = n % m; 28 if(n==0) return 0; 29 if(v.indexOf(n)>=0) _________________________________ ; //填空 30 } 31 } 32 33 注意,只能填写缺少的部分,不要重复抄写已有代码。不要填写任何多余的文字。 34 35 答案:return v.size(); 36 37 */ 38 public class Main { 39 public static int f(int n, int m) 40 { 41 n = n % m; 42 Vector v = new Vector(); 43 44 for(;;) 45 { 46 v.add(n); 47 n *= 10; 48 n = n % m; 49 if(n==0) { 50 return 0; 51 } 52 if(v.indexOf(n)>=0) { 53 // 找到了的话,就表示第二次循环开始了,此时的n一定是等于循环的第一个数 54 //填空 55 return v.size(); 56 } 57 } 58 } 59 60 public static void main(String[] args) { 61 System.out.println(f(13, 156)); 62 } 63 }