時間限制:
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公尺,但由於晚上要休...