xdoj 1034: 猴子吃桃
阿新 • • 發佈:2018-11-24
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;
}