约瑟夫问题---(蓝桥杯)

约瑟夫问题,自己模拟写的直接超时了,后面才知道约瑟夫问题是有规律的。

题目链接:约瑟夫问题

java 复制代码
import java.util.*;

public class Main {
    public static void main(String[] args) {
       Scanner scanner=new Scanner(System.in);
       int n=scanner.nextInt();
       int k=scanner.nextInt();
       System.out.println(find(n,k));
    }
    public static int find(int n,int k){
        int r=0;
        for(int i=2;i<=n;i++){
            r=(r+k)%i;
        }
        return r+1;
    }
}

自己写的超时!

java 复制代码
import java.util.*;

public class Main {
    public static void main(String[] args) {
       Scanner scanner=new Scanner(System.in);
       int n=scanner.nextInt();
       int k=scanner.nextInt();
       int now=0;//当前指针
        ArrayList<Integer> a=new ArrayList<>();
        for(int i=1;i<=n;i++){
            a.add(i);
        }
        int i=0;//当前位置
        while(a.size()!=1){
            now++;
            if(now==k){
                Integer x=a.remove(i);//索引处
                now=0;
            }
            else{
                i++;
                if(i==a.size()){
                    i=0;
                }
            }
        }
        System.out.println(a.get(0));
    }
}
相关推荐
鬼火儿18 小时前
15.<Spring Boot 日志>
java·后端
Mos_x18 小时前
SpringBoot】Spring Boot 项目的打包配置
java·后端
qianbailiulimeng18 小时前
【Spring Boot】Spring Boot解决循环依赖
java·后端
何中应18 小时前
Spring Boot解决循环依赖的几种办法
java·spring boot·后端
donotshow18 小时前
SpringBoot】Spring Boot 项目的打包配置
java·后端
鬼火儿18 小时前
Spring Boot 整合 ShedLock 处理定时任务重复
java·后端
王元_SmallA18 小时前
【Spring Boot】Spring Boot解决循环依赖
java·后端
小圆53118 小时前
java-learn(9):常见算法,collection框架
java·开发语言·算法
nbsaas-boot18 小时前
SaaS 租户上下文传播架构
java·架构·saas