第六届蓝桥杯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 }
View Code

 

posted @ 2021-03-07 14:54  没有你哪有我  阅读(79)  评论(0编辑  收藏  举报