题解 | #计数器#

计数器

http://www.nowcoder.com/practice/e953b0dc87bb43f29cb042c7a9f31598

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        while(sc.hasNextLong()){
            long n = sc.nextLong();
            System.out.println(fun(n));
        }
    }

    public static long fun(long n){
        if(n <= 3){
            return 3 - n + 1;
        }

        int index = 1;
        long num = n;
        while(num > 3 * Math.pow(2, index - 1)){
            num -= 3 * Math.pow(2, index - 1);
            index++;
        }

        return 3 * (long)Math.pow(2, index) - 2 - n;
    }
}
全部评论

相关推荐

“校招”、“3-5年经验”
xiaolihuam...:逆向工程不是搞外挂的吗,好像现在大学生坐牢最多的就是诈骗罪和非法侵入计算机系统罪,发美金,还居家办公,就是怕被一锅端,
点赞 评论 收藏
分享
点赞 评论 收藏
分享
代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务