两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。 比如,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
相关推荐
ccLianLian3 分钟前
数论·欧拉函数
数据结构·算法
2501_9454248010 分钟前
C++编译期矩阵运算
开发语言·c++·算法
yy我不解释14 分钟前
关于comfyui的mmaudio音频生成插件时时间不一致问题(三)
开发语言·python·ai作画·音视频·comfyui
2301_8154829316 分钟前
C++中的类型标签分发
开发语言·c++·算法
SuperEugene16 分钟前
Vue3 模板语法规范实战:v-if/v-for 不混用 + 表达式精简,避坑指南|Vue 组件与模板规范篇
开发语言·前端·javascript·vue.js·前端框架
xushichao198921 分钟前
代码生成优化技术
开发语言·c++·算法
炽烈小老头28 分钟前
【每天学习一点算法 2026/03/22】前 K 个高频元素
学习·算法
leaves falling30 分钟前
C++类和对象(1)
开发语言·c++
2401_8732046535 分钟前
模板编译期循环展开
开发语言·c++·算法
木心月转码ing35 分钟前
Hot100-Day51-TT70爬楼梯
算法