1. 程式人生 > >xdoj 1034: 猴子吃桃

xdoj 1034: 猴子吃桃

1034: 猴子吃桃
時間限制: 1 Sec 記憶體限制: 128 MB
提交: 412 解決: 204
[提交][狀態][討論版]
題目描述
猴媽媽給小猴子們準備了N個桃子,無數個小猴子排隊去領桃子吃,排在第一個的領1個桃子,排在第二個的領2個桃子,排在第三個的領4個桃子,排在第四個的領8個桃子,以此類推,一旦桃子不夠了,猴媽媽就把剩下的桃子給下一個猴子,然後其餘的小猴子就得捱餓了^_^
現在,有一隻小猴子想拿到最多的桃子,那麼它應該排在第幾個位置,又能吃到幾個桃子呢?

輸入
有多組輸入資料,第一行為一個數字T,代表有T組輸入資料 (0

#include<stdio.h> 
#include<math.h> int main() { int i,n,a,m; scanf("%d",&m); while(m--) { scanf("%d",&a); if(a==1) printf("%d %d\n",1,1); else { int count=0; int pos=0; while(a>=count) { count+=pow(2,pos); pos++; } pos--; n=pow(2
,pos-1); count=count-pow(2,pos); count=a-count; if(n>=count) printf("%d %d\n",pos,n); else printf("%d %d\n",pos+1,count); } } return 0; }