两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。 比如,11/13=6=>0.846153846153… 其循环节为[846153] 共有6位。

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

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

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

java 复制代码
import java.util.Vector;
public class test3 {
    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;//当前余数扩大10倍,求得下一位余数
            n=n%m;
            if(n==0)
                return 0;
                //如果当前的余数不是第一次出现,那么就说明已经循环节出现了
            if(v.indexOf(n)>=0)
            //为了避免循环部分是相同的数字的情况,因此需要减去第一次出现的位置
                return v.size()-v.indexOf(n);

            }
        }
    }

输出:

java 复制代码
6
相关推荐
qq_3363139313 分钟前
java基础-字符串
java
blammmp18 分钟前
算法专题十九:记忆化搜索(暴搜->记忆化搜索)
算法·深度优先·记忆化搜索
纵有疾風起22 分钟前
C++—string(1):string类的学习与使用
开发语言·c++·经验分享·学习·开源·1024程序员节
Molesidy1 小时前
【随笔】【QT】QT5.15.2版本的最新下载方式!!!
开发语言·qt
MicroTech20251 小时前
边缘智能的创新:MLGO微算法科技推出基于QoS感知的边缘大模型自适应拆分推理编排技术
科技·算法·ai
二进制person2 小时前
Java EE初阶 --多线程2
java·开发语言
yue0082 小时前
C#理论学习-WinForm实践开发教程总结
开发语言·学习·c#
王哈哈^_^2 小时前
【数据集】【YOLO】目标检测游泳数据集 4481 张,溺水数据集,YOLO河道、海滩游泳识别算法实战训练教程。
人工智能·算法·yolo·目标检测·计算机视觉·分类·视觉检测
巴里巴气3 小时前
第73题 矩阵置零
线性代数·算法·矩阵
007php0073 小时前
某游戏大厂 Java 面试题深度解析(四)
java·开发语言·python·面试·职场和发展·golang·php