xdoj 1034: 猴子吃桃

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_36793545/article/details/71075764

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;
 } 

猜你喜欢

转载自blog.csdn.net/qq_36793545/article/details/71075764
今日推荐