招生熱線
0755-86191118 0755-86191118
我的位置: 首頁 > 學(xué)習(xí)專區(qū) > .NET技術(shù) > C語言實(shí)例 將真分?jǐn)?shù)分解為埃及分?jǐn)?shù)

C語言實(shí)例 將真分?jǐn)?shù)分解為埃及分?jǐn)?shù)

2013-06-22 08:59:52
來源:
[導(dǎo)讀] 分子為1 的分?jǐn)?shù)稱為埃及分?jǐn)?shù),現(xiàn)輸入一個(gè)真分?jǐn)?shù),請(qǐng)將該分?jǐn)?shù)分解為埃及分?jǐn)?shù)。如:8 11=1 2+1 5+1 55+1 110。*問題分析與算法設(shè)計(jì)若真分?jǐn)?shù)

分子為1 的分?jǐn)?shù)稱為埃及分?jǐn)?shù),現(xiàn)輸入一個(gè)真分?jǐn)?shù),請(qǐng)將該分?jǐn)?shù)分解為埃及分?jǐn)?shù)。

如:8/11=1/2+1/5+1/55+1/110。

*問題分析與算法設(shè)計(jì)

若真分?jǐn)?shù)的分子a能整除分母b,則真分?jǐn)?shù)經(jīng)過化簡(jiǎn)就可以得到埃及分?jǐn)?shù),若真分?jǐn)?shù)的分子不能整除分母,則可以從原來的分?jǐn)?shù)中分解出一個(gè)分母為b/a+1的埃及分?jǐn)?shù)。用這種方法將剩余部分反復(fù)分解,最后可得到結(jié)果。

*程序說明與注釋

/*注:對(duì)源程序作稍許修改,主要是添加了一個(gè)外循環(huán),可以直接計(jì)算多個(gè)真分?jǐn)?shù)的埃及分?jǐn)?shù),按Ctrl-C退出。具體的算法我沒有認(rèn)真看,有問題請(qǐng)?zhí)岢?,謝謝*/

#include

int main(void)

{

long int a,b,c;

while(true)

{

printf("Please enter a optional fraction(a/b):");

scanf("%ld/%ld",&a,&b); /*輸入分子a和分母b*/

printf("It can be decomposed to:");

while(true)

{

if(b%a) /*若分子不能整除分母*/

c=b/a+1; /*則分解出一個(gè)分母為b/a+1的埃及分?jǐn)?shù)*/

else{ c=b/a; a=1;} /*否則,輸出化簡(jiǎn)后的真分?jǐn)?shù)(埃及分?jǐn)?shù))*/

if(a==1)

{

printf("1/%ld\n",c);

break; /*a為1標(biāo)志結(jié)束*/

}

else

printf("1/%ld + ",c);

a=a*c-b; /*求出余數(shù)的分子*/

b=b*c; /*求出余數(shù)的分母*/

if(a==3) /*若余數(shù)為3,輸出最后兩個(gè)埃及分?jǐn)?shù)*/

{ printf("1/%ld + 1/%ld\n",b/2,b); break;}

}

}

return 0;

}

*運(yùn)行結(jié)果

Please enter a optional fraction (a/b): 1/6

It can be decomposed to: 1/6

Please enter a optional fraction (a/b): 20/33

It can be decomposed to: 1/2+1/10+1/165

Please enter a optional fraction (a/b): 10/89

It can be decomposed to: 1/9+1/801

Please enter a optional fraction (a/b): 19/99

It can be decomposed to: 1/6+1/40+1/3960

Please enter a optional fraction (a/b): 8/87

It can be decomposed to: 1/11+1/957

……(按ctrl-c退出)

評(píng)論
好吊妞免费视频在线观看,久久亚洲国产人成综合网,久久精品国产2020,欧美精品综合在线
伊人久久大香线蕉综合影院首页 | 在线播放国产熟睡乱子伦 | 夜鲁夜鲁很鲁在线视频视频 | 夜色福利院在线看视频 | 亚洲日本韩国不卡中文字幕 | 在线精品国产制服丝袜 |