//效率没别人高,但是值得骄傲的是我把刚刚学的二分法和位运算同时运用了
Problem : 1339 ( A Simple Task ) Judge Status : Accepted
RunId : 5702672 Language : C Author : ssun
Code Render Status : Rendered By HDOJ C Code Render Version 0.01 Beta
#include<stdio.h>
int main()
{
int t,n,i,j,sta,end,mid;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(j=0; j<=20; j++)
{
sta = mid = n; end = 1;
while(sta > end)
{
if(n<mid*(1<<j))
sta = mid-1;
else
end = mid+1;
if(n==mid*(1<<j) && mid %2 == 1)
printf("%d %d\n",mid,j);
mid = (sta + end) / 2;
}
}
}
return 0;
}
HDU 1339 ( A Simple Task )
最新推荐文章于 2020-03-21 00:00:50 发布