首页 > 编程知识 正文

把混循环小数化为分数(混循环小数化分数)

时间:2023-05-04 12:52:26 阅读:92086 作者:2212

另一方面,对于大于1的自然数n,将其倒数1/n小数化有3种类型:

的因数只含有2或5。 结果,一定是有限小数。 另外,小数位数等于其因数2或5中最多的个数。 例如,1/40=0.025,有三位数的小数,但40=2^3*5,其中含有三个因数2。 如果n不包含系数2或5,则小数表示纯无限循环小数。 我们已经对此进行了说明,n有因数2或5和其他因数。 如果把它变成小数,它就会变成混合无限循环小数。 其中不循环部分的位数等于其因数2或5中最多的个数。 循环子句的位数只能由2或5以外的因数决定。 例如,1/56=0.017’857142’,不循环的部分为小数3位,循环节为6位。 另一方面,我们知道56=2^3*7含有3个因数2和因数7,7的倒数循环节的位数也为6位数。 二、用c语言编程将单位分为小数:

//分数化小数(包括有限小数纯粹无限循环小数混合无限循环小数)

# #包括stdio.h

int主() )

{入口I、出口b、出口y、出口y1、出口w; //循环变量I、被除数b、余数y、循环节的位数w、

整数米,整数; //范围[m,n],(其中,m,n都是自然数,且2=m=n ) ) ) ) ) )。

printf (请用'自然数范围m n )空格分隔输入) : ); 扫描(' % d % d )、米、n );

if(m=1) m=2; 排除//0和1的倒数

for(I=m; i=n; I ) )

{ y=i; w=0; //i为余数y; 将包括系数2或5在内的最大个数w设为0

while(y==0) { y/=10; w; //y能被几个10整除

wile(y%2==0) { y/=2; w; //y能被几个2整除

wile(y%5==0) { y/=5; w; //y能被几个5整除

printf('1/%d=0. ',I );

y=1; //余数(被除数)设为1

while(w!=0) )//2或5在内的个数不为0时,重复除法运算:

{ y*=10; //在多之后补充0

打印机(' % d ',y/i );//输出1个商品(不循环的部分);(不循环的部分) );() ) ) ) ) ) ) ) ) ) ) ) ) )。

y%=i; w----; //求新的余数,个数减去1

}

if(y==0)打印机) (n ); 继续; //有限小数的情况下,看下面的I

printf (' '; //'是循环部分的开始标记,用单引号' '表示循环部分

b=y*10; y1=y; //首先将余数*10传达给b (以进行下一个周期); 将循环开始前的余数传递给y1

while(b!=Y1(//多=循环开始时的多余时间跳出来

{ y*=10; w; //余数*10成为被除数,累计循环部分的位数

打印机(' % d ',y/i );//输出一个业者(循环部分) ) ) ) ) )。

y%=i; b=y; //求新的余数,余数y交给除数b

}

printf (),其循环节为%d位(n )、w ); //是循环部分结束标志,输出循环节的位数w

}

}

三、单位分数化小数运行结果的展示:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。