首页 > 其他 > 详细

计数器

时间:2020-07-26 20:02:00      阅读:62      评论:0      收藏:0      [点我收藏+]

小爱有一个奇怪的计数器。在第一个时刻计数器显示数字3,在接下来的每一个时刻,屏幕上的数字都会减1,直到减到1为止。

接下来,计数器会重置为上一个计数周期初始值的两倍,然后再每一个时刻减1。具体过程如下图所示:
技术分享图片
找出规律,并打印出t时刻计数器的值。

输入描述:

输入为时刻t,一个整形数字。0<t<1e12

输出描述:

计数器显示的值。

思路:可以看出每一列的起始数字组成一个等比数列,
time可以看作是整个等比数列的前n-1项和,然后还有些特殊处理
import java.util.Scanner;

public class Main {


    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()){
            int i = scanner.nextInt();
            calc(i);
        }

    }

   private static void calc(int t){
        int time = 3;
        while (t > time){
            t -= time;
            time *= 2;
        }
       System.out.println(time + 1 - t);

   }
}

 

计数器

原文:https://www.cnblogs.com/dongma/p/13380864.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!