解题思路:
注意事项:
参考代码:
import java.util.Scanner; public class T1731 { public static int f(int m,int n){ int ans = 0; int l1 = m,l2 = 2*l1; int k = 1; //l1节点所在层 while(!(l1<=n && n<l2)){ l1=l2; l2*=2; k++; } if((l1 + Math.pow(2, k-1)-1)<=n) ans = (int)Math.pow(2, k) - 1; else ans = (int)Math.pow(2, k-1) + n - l1; return ans; } public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNext()){ int m = in.nextInt(),n = in.nextInt(); if(m == 0 && n == 0) break; System.out.println(f(m,n)); } in.close(); } }
0.0分
0 人评分
【亲和数】 (C语言代码)浏览:855 |
printf基础练习2 (C语言代码)浏览:941 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:937 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:1242 |
wu-理财计划 (C++代码)浏览:827 |
2004年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:1327 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:598 |
C语言程序设计教程(第三版)课后习题6.2 (C语言代码)浏览:685 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:780 |
矩阵乘方 (C语言代码)浏览:1022 |