蓝桥杯-循环节长度-java

/* (程序头部注释开始)

* 程序的版权和版本声明部分

* Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 

* All rights reserved.

* 文件名称: 蓝桥杯赛题                           

* 作    者:   彭俊豪               

* 完成日期:   2016   年 04月 01日

* 版 本 号:      001   

* 对任务及求解方法的描述部分

* 问题描述:

两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。
比如,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) _________________________________ ; //填空
}
}

* 输入描述:  

 * 程序输出:  注意,只能填写缺少的部分,不要重复抄写已有代码。不要填写任何多余的文字。

* 程序头部的注释结束

*/

上代码:

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 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); //填空
    }
  }

}

posted @ 2017-04-06 16:13  成长中的小牛  阅读(787)  评论(0编辑  收藏  举报