`
Iam42
  • 浏览: 272760 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

如何判断一个分数是否能化成非循环小数

 
阅读更多

①若一个分数的分子为1,如1/a=x(x为有限位的小数)

则可把x化为分母为10^n,分子为x×10^n的一个整数,n的取值要看x的小数位是几位

则x×10^n=10^n/a=2^n·5^n/a,我们可知等式左边是个整数,所以右边的分母a定能整除10^n,

即a=2^i·5^j(i,j都大于等于0)时,1/a就为有限小数

 

反之,若a的因子中还有不是2和5的其他数,则分数1/a为无限循环小数

 

②若是一个一般的最简分数b/a,若b/a为有限小数,则可认为是b与1/a的乘积

推断过程如①,得出a至少整除10^n与b中的一个,否则b/a不为有限小数

③我觉得无限循环小数又分为循环节为1的和循环节大于1的两类,如:

循环节为1的:0.3333333333......,0.1666666666666666......,0.12344444444......(这里有的不是从小数点后的第一位开始循环的,而是从某一位开始循环,我们也把他认为是循环节为1)

循环节大于1的:0.01010101......,0.142857142857......,0.076923076923......

 

对于一个最简分数b/a,若其为循环节为1的无限循环小数,则分母a为3或3的整数倍。反之,其循环节大于1

 

④若给你一个无限循环小数0.m......nm......n.......把其化为小数形式,该怎么化?

其循环节为m......n,设其循环节内有x位数字

设原数0.m......nm......n.......=y

则y×10^x=m......n.m......n......

上面两式相减:y(10^x-1)=m......n,即y=m......n/(10^x-1)

即化为分数形式即为以循环节为分子,分母为999.....9(9的位数与循环节的位数相同)

当然若你想把此分数化为最简形式,却不见得是件容易的事

例如1/7=0.142857142857......=142857/999999

 

代码一:如何把输出一个数的质因子

public class zhishu {
	public void separation(int i){
		int flag = 0;
		while(i!=0){
			flag = 0;
			for(int j=2;j<=i;j++){
				if(i%j==0){
					System.out.print(j+"+");
					i = i/j;
					flag = 1;
					break;
				}
			}
			if(flag == 0){
				System.out.print(i);
				break;
			}
		}
	}
	public static void main(String args[]){
		zhishu c = new zhishu();
		c.separation(121);
	}
}

 

代码二:判断一个分数能不能转化成有限小数

public class Cycle {

	public boolean judge(int up , int down){
		if(down == 0) {      //判断输入,分母不能为0
			System.out.println("input Error");
			return false;
		}
		
		while(up > down){        //把一个分数化成真分数
			up = up-down;
		}
		
		for(int i=2 ; i<=up ; i++){             //分子分母约去最大公因子
			if(up%i == 0 && down%i == 0){
				up = up/i;
				down = down/i;
			}
		}

		while(down!=1){             //检查分母是不是只含有2,5两种质因子
			if(down%2 == 0){
				down = down/2;
			}else if(down%5 == 0){
				down = down/5;
			}else{
				return false;
			}
		}
		return true;
	}
	
	public static void main(String[] args) {
		Cycle c = new Cycle();
		System.out.println(c.judge(10, 15));
	}
}

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics