時間限制:
1000 ms | 記憶體限制:
65535 kb
難度:2 描述
一路艱辛一路收穫,成功爬過金字塔的小蝸牛別提多高興了。這不為了向曾經幫助他的哥們們表達謝意,蝸牛宴請這些親朋好友。
席間,蝸牛發現老鷹一直愁眉不展。就關切的問下老鷹。老鷹說:「近來,有一道題我一直沒解決,很是鬱悶」。蝸牛說:「說說看,看能不能幫你解決掉,老朋友」。老鷹說:「給乙個數,用二進位制表達,如果這個數轉化為二進位制後小數字超過
20位,那麼只要前二十位,其餘的不要」,小蝸牛現在很忙,沒時間幫助老鷹。
親愛的兄弟姐妹們,不知道你能否幫忙解決問題。來試下,加油!!!
輸入
多組測試資料,
每組輸入乙個數n(不超double)
輸出輸出對應的二進位制(如果小數部分前20全部為0,則將小數部分視為0,不輸出小數部分,不輸出多餘部分比如:(不輸出1.00100000000000000000而輸出1.001)
樣例輸入
11.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公尺,但由於晚上要休...