全部评论
public static long getResult(long n){
long time = 5L;
long muti = 1L;
long sum = 0L;
while(n > 0){
sum = time * muti;
n -= sum;
muti *= 2;
}
return n + sum;
}
这样么?
坑爹无法切换,我卡在这题了
这个不是一个挺简单的等比数列吗。。。
我也卡住了,难受
蹲贴
1.求出N属于哪一个周期 2.n-上一个周期的末尾结点 即可。 例如 n=15属于第二周期。上一个周期末尾结点是5。15-5=10
每个周期(ti)内的个数分别为5,10,20,40,也就是说每个周期的个数是5*(2^(t-1)),那么前t项的和为5*(2t-1),所以只要确定n在哪一项就好了
public static void main(String[] args) { System.out.println(get(15)); } public static long get(long n){ Map<long> map=new HashMap<>(); int chen=5; long num=1L; for (int i = 1; i <= 3; i++) { for (int j=1; j <= chen;j++){ map.put(num,j); num++; } chen=chen*2; } return map.get(n); }</long>
相关推荐

点赞 评论 收藏
分享
01-23 14:54
同济大学 Java 点赞 评论 收藏
分享
02-14 15:34
门头沟学院 Java 点赞 评论 收藏
分享