ZOJ 2239 In Danger

2168979 2006-12-12 Accepted 2239 C++ 00:00.00 392K melorain
看到POJ上有人说循环左移就OK了,试了一下,居然是对的,百思不得解
以后要坚决不看别人的提示 :->
这个算法毫无疑问是最优的,但是问什么有的弓虽人只要384K内存呢?
郁闷,俺只有3个变量啊
#include <stdio.h>
int main()
{
 
int n;
 
char c,i;
 
while(c = getchar())
 
{
  c
=='0'?n=0:n=(c-'0')*10;
  c 
= getchar();
  n 
+= c-'0';
  getchar();
  c 
= getchar();
  i 
= c - '0';
  c 
= getchar();
  
while(i--)
   n 
*= 10;
  
if(n==0break;
  
for(i=31;i>0;--i)
  
{
   
if((n&(1<<i))>=1)
    
break;
  }

  n 
&= ~(1<<i);
  n 
= n<<1;
  printf(
"%d\n",n+1);
 }

 
return 0;
}
posted on 2006-12-12 14:53  AnewR  阅读(235)  评论(0)    收藏  举报