小爱有一个奇怪的计数器。在第一个时刻计数器显示数字3,在接下来的每一个时刻,屏幕上的数字都会减1,直到减到1为止。
输入为时刻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