C趣味程序百例(14)將真分數分解爲埃及分數

C趣味程序百例(14)將真分數分解爲埃及分數,第1張

C趣味程序百例(14)將真分數分解爲埃及分數,第2張

45.真實分數分解成埃及分數
分子爲1的分數稱爲埃及分數。現在輸入真實分數。請把這個分數分解成埃及分數。
例如:8/11=1/2 1/5 1/55 1/110。
*問題分析及算法設計
如果真分數的分子A可以除以分母B,那麽真分數就可以簡化得到埃及分。如果真實分數的分子不能除以分母,則可以從原始分數中解析出分母爲b/a 1的埃及分數。這樣就可以反複分解賸下的部分,最後得到結果。
*程序和程序注釋
# include
void main()
{
long int a,b,c;
printf("請輸入可選分數(a/b):");
scanf("%ld/%ld",&a,& b);
printf("可以退化爲:");
while(1)
{
if(b % a)
c = b/a 1;
else { c = b/a;a = 1;}
if(a = = 1)
{
printf(" 1/% LD \ n",c);
break;
}
else
printf(" 1/% LD",c);
a = a * c-b;
b = b * c;
if(a==3)
{printf ("1/%LD 1/%LD \ n",b/2,b);打破;}
}
}
*運行結果
1。請輸入一個可選分數(a/b): 1/6
它可以降級爲:1/6
2。請輸入一個可選分數(a/b): 20/33
它可以分解爲:1/2 1/10 1/165
3。請輸入一個可選分數(a/b): 10/ 89
它可以分解爲:1/9 1/801
4。請輸入一個可選分數(a/b): 19/99
它可以分解爲:1/6 1/40 1/3960[/br/ ] 5。請輸入一個可選分數(a/b): 8/89
它可以分解爲:1/11 1/957

位律師廻複

生活常識_百科知識_各類知識大全»C趣味程序百例(14)將真分數分解爲埃及分數

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情