1樓:匿名使用者
使用輾bai轉相除法求出最大公因子,然du後上下同時除以之zhi。 下面給出輾轉
dao相除法求最大公因內
子的**:
int foo(int a, int b)int c = a % b;
if (c == 0)
return foo(b, c);}
怎樣用c語言寫一個將小數轉化成最簡分數的演算法
2樓:止語
演算法很簡單,程式中已經說明。重要的是系統對浮點數是有修正的,導致結果出現問題。
如何解決,詳見程式。
//#include "stdafx.h" //vs 預設使用
#include
#include
#include
#pragma warning(disable: 4996)
//為了最大限度支援(目前)小數,整數定義成:__int64
//支援32位:以下分別為 int(__int32) 1e8
#define zhengshu __int64
#define xiaoshudianzuoyi 1e15 //double 最多隻能確精確到15位有效數字
#define xiuzheng 1e-16 //用於修正浮點數計算誤差
int _tmain(int argc, _tchar* argv)
else
zs = (zhengshu)xs; //支援假分數
//計算整數部分的有效數位數
k = 1;
while (zs / k > 0)
k *= 10;
xs -= (double)zs;
fm = xiaoshudianzuoyi / k; //分母
xs = (double)((zhengshu)((xs + xiuzheng * k) * fm)) / fm; //修正浮點數計算誤差
xs += xiuzheng; //修正浮點數計算誤差
fz = (zhengshu)(xs * fm); //分子
for (;;) //這樣迴圈,是因為 c/c++ 中,for 迴圈效率最高
else
}//實現第二步:約分。以下看起來有點麻煩,目的是為了減少演算法的時間複雜的
while ((fz % 2 == 0) && (fm % 2 == 0))
k = 3;
for (;;)
k += 2;
if (k > (zhengshu)sqrt(fz))
break;
}//將整數部分加上,形成假分數。如果原數為不為0整數,則化成分母為 1 的假分數
//如果原數為 0,則化成分子為 0,分母為 1。
if (fz == 0)
else
//結束
//顯示一下結果
printf("%lf = %lld/%lld\n", fh * (zs + xs), fz, fm);
//printf("%lf = %ld/%ld\n", fh * (zs + xs), fz, fm); //32位
system("pause"); //防止視窗一閃而退
return 0;}
3樓:
沒有精確的轉換方法,只能模糊轉,你要多模糊呢,分子在什麼範圍內?
怎麼把小數化成最簡分數
4樓:葉子郭郭郭
小數如何化成分數,掌握方法就會非常簡單。
5樓:不想取名字啊西
1.看小數點後面有幾位數,然後去掉小數點,將整個數當做分子,如果小數位數是2位就把100當分母,是1位把10當分母,三位把1000當分母,以此類推。題中4.
4=44/10;3.375=3375/1000。
2.轉化後再看看分子分母之間是否有公因數,如果有就進行約分,直到無法繼續約分。44/10分子分母各除以5得到22/5;3375/1000分子分母同除以125得到27/8。
6樓:匿名使用者
1、首先看小數點後面有幾位數
,如果是2位就除以100,是1位除以10,三位數除以1000以此類推。2、然後分子和分母約分到不能再約分為止。3、拿0.
12做列子,變成12/100,上下可以用4約分,變成3/25.
7樓:買儼陀悌
1/812/5
37/100
32/25
怎麼把最簡分數化成小數,怎麼把最簡分數化成小數
純迴圈小數 一個迴圈節有幾個數,分母就有幾個9,分子則為一個迴圈節上的數 例.0.33333.3 9,0.347347347.347 999 混迴圈小版數,迴圈節權有幾個數,分母就有幾個9,不迴圈的有幾個數,分母再添幾個0,分子是從不迴圈到一個迴圈節數減去不迴圈的數 例.0.32222.32 3 9...
把下面的分數化成最簡分數,是假分數的化成整數或帶分數
2418 43 113 15 35 37 1751 13 3621 12 7 157 2228 1114.把下面的分數化成最簡分數,是假分數的再化成帶分數或整數。36分之27 4分之3 16分之48 3 60分之25 12分之5 14分之240 17又7分之1 祝你學習進步,有不明白的可以追問 謝謝...
怎麼找分數中哪些是最簡分數,怎麼把分數化成最簡分數
一 首先要先認識什麼是最簡分數 分子 分母只有公因數1的分數叫做最簡分數或者說分子和分母是互質數的分數,叫做最簡分數,又稱既約分數。如 2 3,8 9,3 8等等。最簡分數又叫既約分數,既約分數可理解成已經約分過的分數,也就是分子和分母是互質數的分數.假分數雖然是大於1或等於1的分數,但如果符合以上...