java水过……
代码如下:
1 import java.math.*; 2 import java.util.*; 3 public class Main { 4 public static void main(String arg[]){ 5 BigInteger n,ans,sum; 6 Scanner cin = new Scanner(System.in); 7 int k,t=cin.nextInt(); 8 while(t-->0){ 9 n=cin.nextBigInteger(); 10 k=cin.nextInt(); 11 ans=BigInteger.ZERO; 12 while(true){ 13 n=n.divide(BigInteger.valueOf(1<<(k-1))); 14 sum=n.subtract(n.divide(BigInteger.valueOf(2))); 15 if(sum.equals(BigInteger.ZERO)) break; 16 ans=ans.add(sum); 17 n=n.divide(BigInteger.valueOf(2)); 18 } 19 System.out.println(ans); 20 } 21 } 22 }