時(shí)間限制: 1 Sec 內(nèi)存限制: 64 MB
題目描述 “人無(wú)遠(yuǎn)慮,必有近憂”是修羅王一直以來恪守的信條,為了以防萬(wàn)一,他在很久以前就將《魔法寶典》的全部信息編碼為一個(gè)巨大無(wú)比的自然數(shù),并在這個(gè)數(shù)前加一個(gè)0和小數(shù)點(diǎn),使它變成一個(gè)分?jǐn)?shù)。然后他在戒指上刻了一個(gè)記號(hào),使記號(hào)的兩端長(zhǎng)度比等于這個(gè)分?jǐn)?shù)。這樣,雖然他在入獄時(shí)手上只帶了一個(gè)戒指,但只要測(cè)量出戒指上記號(hào)的比值M/N,他就可以還原《魔法寶典》的全部信息。 現(xiàn)在的問題是:已知分?jǐn)?shù)M/N,試計(jì)算M/N的值。如果M/N是無(wú)限循環(huán)小數(shù),則計(jì)算并輸出它的第一循環(huán)節(jié),同時(shí)要求輸出循環(huán)節(jié)的起止位置(小數(shù)位的序號(hào))。
輸入 只有一行,即M/N,其中0 < M < N < 100。
輸出 輸出M/N的值,如為無(wú)限循環(huán)小數(shù),則輸出第一循環(huán)節(jié)及起止位置。
樣例輸入 17/97
樣例輸出 17/97=0.175257731958762886597938144329896907216494845360824742268041237113402061855670103092783505154639 from 1 to 96
提示 【輸入樣例2】 1/2
【輸出樣例2】 1/2=0.5
可以將商存放在一維數(shù)組中,進(jìn)行除法運(yùn)算,模擬人的手工操作,即每次求出商的一位后,將余數(shù)乘以10,再計(jì)算商的下一位。若某次余數(shù)為0,則為有限不循環(huán)小數(shù)。若某次計(jì)算后的余數(shù)與前面某個(gè)余數(shù)相同時(shí),則M / N是無(wú)限循環(huán)小數(shù)。
代碼[c++]
#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>using namespace std;const int maxn = 105;int main(){ int m,n; while(scanf("%d/%d",&m,&n)!=EOF) { int modnum[100] = {0};//記錄每個(gè)余數(shù)出現(xiàn)的次數(shù)(余數(shù)的范圍0~98)新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注