java求循环节

来源:百度知道 编辑:UC知道 时间:2024/05/28 12:47:48
输入2个数A和B,A/B,其结果为无序或者有序循环小数,请将小数中循环节用[]括起来然后打印输出,(比如1/3结果为0.33333,应打印出0.[3],7/15结果为0.46666..应打应出0.4[6])请写出其实现方法
假如这题是考试题目,考官是绝对不会回答你任何问题的!
...不要紧,能顺便说下思路吗?重要的是思路,讲清楚了就完了,当然有代码有代码的优先给分!
kungfu0101详细说下你的思路吧!

import java.util.*;
public class Xunhuanjie
{
public static void main(String[] args)
{
int[] d=new int[100];//存放除数
int[] r=new int[100];//存放余数
int m,n,i,j,k;
i=0;
System.out.println("请输入两个数:");
Scanner in=new Scanner(System.in);
m=in.nextInt();
n=in.nextInt();
d[i]=m/n;
r[i]=m%n;
while(true)
{
i++;
d[i]=r[i-1]*10/n;
r[i]=r[i-1]*10%n;
j=0;
while(r[j]!=r[i])
j++;
if(j<i)
break;
}
System.out.print(m+"/"+n+"="+d[0]+".");
for(k=1;k<=j;k++)
System.out.print(d[k]);
System.out.print("[");
for(k=j+1;k<=i;k++)
System.out.print(d[k]);
System.out.print("]\n");
}
}
这个程序是不严谨的,可惜我泛型数组列表学得不好,见谅

比方说7/15,假如一个小学生会怎么算呢?
1)先商0余7,这0就是整数部分了
2)然后补0,就是用余的7*10/15,得4余10