午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

HDU 1717 小數(shù)化分?jǐn)?shù)2

 條山石頭 2017-01-12
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1646 Accepted Submission(s): 613
Problem Description
Ray 在數(shù)學(xué)課上聽(tīng)老師說(shuō),任何小數(shù)都能表示成分?jǐn)?shù)的形式,他開(kāi)始了化了起來(lái),很快他就完成了,但他又想到一個(gè)問(wèn)題,如何把一個(gè)循環(huán)小數(shù)化成分?jǐn)?shù)呢?
請(qǐng)你寫(xiě)一個(gè)程序不但可以將普通小數(shù)化成最簡(jiǎn)分?jǐn)?shù),也可以把循環(huán)小數(shù)化成最簡(jiǎn)分?jǐn)?shù)。
Input
第一行是一個(gè)整數(shù)N,表示有多少組數(shù)據(jù)。
每組數(shù)據(jù)只有一個(gè)純小數(shù),也就是整數(shù)部分為0。小數(shù)的位數(shù)不超過(guò)9位,循環(huán)部分用()括起來(lái)。
Output
對(duì)每一個(gè)對(duì)應(yīng)的小數(shù)化成最簡(jiǎn)分?jǐn)?shù)后輸出,占一行。
Sample Input
30.(4)0.50.32(692307)
Sample Output
4/91/217/52
Source
2007省賽集訓(xùn)隊(duì)練習(xí)賽(2)

首先我們要明確,無(wú)限小數(shù)可按照小數(shù)部分是否循環(huán)分成兩類:無(wú)限循環(huán)小數(shù)和無(wú)限不循環(huán)小數(shù)。無(wú)限不循環(huán)小數(shù)不能化分?jǐn)?shù),這在中學(xué)將會(huì)得到詳盡的解釋;無(wú)限循環(huán)小數(shù)是可以化成分?jǐn)?shù)的。那么,無(wú)限循環(huán)小數(shù)又是如何化分?jǐn)?shù)的呢?由于它的小數(shù)部分位數(shù)是無(wú)限的,顯然不可能寫(xiě)成十分之幾、百分之幾、千分之幾……的數(shù)。其實(shí),循環(huán)小數(shù)化分?jǐn)?shù)難就難在無(wú)限的小數(shù)位數(shù)。所以我就從這里入手,想辦法“剪掉”無(wú)限循環(huán)小數(shù)的“大尾巴”。策略就是用擴(kuò)倍的方法,把無(wú)限循環(huán)小數(shù)擴(kuò)大十倍、一百倍或一千倍……使擴(kuò)大后的無(wú)限循環(huán)小數(shù)與原無(wú)限循環(huán)小數(shù)的“大尾巴”完全相同,然后這兩個(gè)數(shù)相減,“大尾巴”不就剪掉了嗎!我們來(lái)看兩個(gè)例子:
⑴    把0.4747……和0.33……化成分?jǐn)?shù)。
想1:        0.4747……×100=47.4747……   
0.4747……×100-0.4747……=47.4747……-0.4747……
(100-1)×0.4747……=47
即99×0.4747…… =47 
那么  0.4747……=47/99
想2: 0.33……×10=3.33……
0.33……×10-0.33……=3.33…-0.33……
(10-1) ×0.33……=3
即9×0.33……=3
那么0.33……=3/9=1/3
由此可見(jiàn), 純循環(huán)小數(shù)化分?jǐn)?shù),它的小數(shù)部分可以寫(xiě)成這樣的分?jǐn)?shù):純循環(huán)小數(shù)的循環(huán)節(jié)最少位數(shù)是幾,分母就是由幾個(gè)9組成的數(shù);分子是純循環(huán)小數(shù)中一個(gè)循環(huán)節(jié)組成的數(shù)。
⑵把0.4777……和0.325656……化成分?jǐn)?shù)。
想1:0.4777……×10=4.777……①
0.4777……×100=47.77……②
用②-①即得: 
0.4777……×90=47-4
所以, 0.4777……=43/90
想2:0.325656……×100=32.5656……①
0.325656……×10000=3256.56……②
用②-①即得: 
0.325656……×9900=3256.5656……-32.5656……
0.325656……×9900=3256-32
所以, 0.325656……=3224/9900
將純循環(huán)小數(shù)改寫(xiě)成分?jǐn)?shù),分子是一個(gè)循環(huán)節(jié)的數(shù)字組成的數(shù);分母各位數(shù)字都是9,9的個(gè)數(shù)與循環(huán)節(jié)中的數(shù)字的個(gè)數(shù)相同.
  將混循環(huán)小數(shù)改寫(xiě)成分?jǐn)?shù),分子是不循環(huán)部分與第一個(gè)循環(huán)節(jié)連成的數(shù)字組成的數(shù),減去不循環(huán)部分?jǐn)?shù)字組成的數(shù)之差;分母的頭幾位數(shù)字是9,末幾位數(shù)字是0,9的個(gè)數(shù)跟循環(huán)節(jié)的數(shù)位相同,0的個(gè)數(shù)跟不循環(huán)部分的數(shù)位相同.

#include#includestring.h>int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}int main(){ char str[20]; int n; scanf('%d',&n); getchar(); while(n--){ scanf('%s',str); int i,flag=1; int a1=1,b1=0,a2=1,b2=0; for(i=2;str[i]!='\0';i++){ if(str[i]=='(') flag=0; if(str[i]>='0' && str[i]<>'9'){ if(flag){ a1*=10; b1=b1*10+str[i]-'0'; } a2*=10; b2=b2*10+str[i]-'0'; } } //printf('a1=%d b1=%d a2=%d b2=%d\n',a1,b1,a2,b2);if(flag) printf('%d/%d\n',b1/gcd(a1,b1),a1/gcd(a1,b1)); else{ int tmp=gcd((a2-a1),(b2-b1)); printf('%d/%d\n',(b2-b1)/tmp,(a2-a1)/tmp); } } return0;}

標(biāo)簽: acm/icpc hdu

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多