nyoj 647 奮鬥小蝸牛在請客(進製轉換)

2021-09-07 16:53:37 字數 1486 閱讀 7424

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度: 2

描寫敘述

一路艱辛一路收穫。成功爬過金字塔的小蝸牛別提多高興了。這不為了向以前幫助他的哥們們表達謝意,蝸牛宴請這些親朋好友。

席間。蝸牛發現老鷹一直愁眉不展。就關切的問下老鷹。老鷹說:「近來。有一道題我一直沒解決,非常是鬱悶」。蝸牛說:「說說看,看能不能幫你解決掉。老朋友」。

老鷹說:「給乙個數。用二進位制表達,假設這個數轉化為二進位制後小數字超過

20位。那麼僅僅要前二十位,其餘的不要」,小蝸牛如今非常忙。沒時間幫助老鷹。

親愛的兄弟姐妹們,不知道你是否能幫忙解決這個問題。來試下,加油!

!輸入

多組測試資料。

每組輸入乙個數n(不超double)

輸出輸出相應的二進位制(假設小數部分前20所有為0,則將小數部分視為0,不輸出小數部分,不輸出多餘部分比方:(不輸出1.00100000000000000000而輸出1.001)

例子輸入

1

1.50.000001

0.000000999

例子輸出

1

1.10.00000000000000000001

0.00000000000000000001

解題思路:

能夠將小數分為整數和小數兩部分,然後分別轉換成二進位制,整數小數都要用陣列來儲存轉換資訊,避免越界。

整數轉換為二進位制用到的是輾轉取餘法,而小數轉換為二進位制用到的是相乘取整法。

求小數的整數和小數部分,用(int)求得其整數部分。然後本值減去整數部分即為小數部分。

注意小數點的輸出條件

**

#include#includeint zheng[10000];

int xiao[25];

int main()

for(i=numz-1;i>=1;i--)

printf("%d",zheng[i]);

} /*

numz=1;

dowhile(max!=0);

//以後假設轉換進製須要用陣列儲存。則用do-while

for(i=numz-1;i>=1;i--)

printf("%d",zheng[i]);

*/

numx=1;

while(numx<21&&min)

for(i=numx-1;i>=1;i--)

if(xiao[i]!=0)

break;//注意i從numx-1開始

numx=i;

if(numx!=0)

printf(".");

//避免沒小數可是輸出 .

for(i=1;i<=numx;i++)

printf("%d",xiao[i]);

printf("\n");

} return 0;

}

nyoj 647 奮鬥小蝸牛在請客(進製轉換)

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 一路艱辛一路收穫,成功爬過金字塔的小蝸牛別提多高興了。這不為了向曾經幫助他的哥們們表達謝意,蝸牛宴請這些親朋好友。席間,蝸牛發現老鷹一直愁眉不展。就關切的問下老鷹。老鷹說 近來,有一道題我一直沒解決,很是鬱悶 蝸牛說 說說看,看...

NYOJ 599 奮鬥的小蝸牛

時間限制 1000 ms 記憶體限制 65535 kb難度 1 描述 傳說中能站在金字塔頂的只有兩種動物,一種是鷹,一種是蝸牛。乙隻小蝸牛聽了這個傳說後,大受鼓舞,立志要爬上金字塔。為了實現自己的夢想,蝸牛找到了老鷹,老鷹告訴它金字塔高h公尺,小蝸牛知道乙個白天自己能向上爬10公尺,但由於晚上要休息...

nyoj599奮鬥的小蝸牛

時間限制 1000 ms 記憶體限制 65535 kb 難度 1 描述 傳說中能站在金字塔頂的只有兩種動物,一種是鷹,一種是蝸牛。乙隻小蝸牛聽了這個傳說後,大受鼓舞,立志要爬上金字塔。為了實現自己的夢想,蝸牛找到了老鷹,老鷹告訴它金字塔高h公尺,小蝸牛知道乙個白天自己能向上爬10公尺,但由於晚上要休...