您現在的位置是:首頁 > 舞蹈首頁舞蹈
分數化為小數(包含有限小數,純、混無限迴圈小數)
二分之一等於小數等於多少
一、對大於1的自然數n,將其倒數1/n化成小數有三種類型:
n的因數中只含有2或5,其結果必然是有限小數,且小數位數等於其因數2或5中最多的個數,例如:1/40=0。025,有3位小數,而40=2^3*5,其中含有3個因數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語言程式設計把單位分數化為小數:
//分數化小數(包含:有限小數 純無限迴圈小數 混無限迴圈小數)
#include
int main ()
{ int i,b,y,y1,w;//迴圈變數i,被除數b,餘數y,迴圈節位數w,
int m,n; //範圍[m,n],(其中m,n均為自然數,且2<=m<=n)
printf(“請輸入自然數範圍m n(用空格隔開):”); scanf(“%d %d”,&m,&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%10==0){ y/=10; w++; } //y能被幾個10整除
while(y%2==0) { y/=2; w++; } //y能被幾個2整除
while(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
printf(“%d”,y/i); //輸出一位商(不迴圈部分)
y%=i; w——; //求新餘數,個數減1
}
if(y==0) {printf(“\n”);continue;} //若是有限小數,看下一個i
printf(“‘”); //’為迴圈部分開始標記,用單引號‘ ’裡面表示一個迴圈節
b=y*10; y1=y; //先把餘數*10傳給b(保證下面的迴圈能進行);把迴圈開始前的餘數傳給y1
while(b!=y1) //當餘數=迴圈開始時的餘數時跳出
{ y*=10;w++; //餘數*10變為被除數,累計迴圈部分位數
printf(“%d”,y/i); //輸出一位商(迴圈部分)
y%=i; b=y; //求新餘數,餘數y傳給除數b
}
printf(“‘,其迴圈節有%d位\n”,w); //’為迴圈部分結束標記,輸出迴圈節位數w
}
}
三、單位分數化小數執行結果展示: