n个人依次报数,第m个出列,然后从m+1的人重新报数,直到剩下最后一个人,他是几号

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * Created by yan.yong2 on 2020/1/9.
 */
public class test {

    public static int inputOut(List list){
        Scanner scanner = new Scanner(System.in);
        System.out.print("输入人数:");
        int n = scanner.nextInt();
        System.out.print("移除位置:");
        int m = scanner.nextInt();

        for(int i=0;i<n;i++){
            list.add(i+1);
        }

        return m;
    }

    public static void remove(List list, int m){
        while(list.size()>1){
            for(int i=0;i<m-1;i++){
                list.add(list.remove(0));//把不是第m个元素重新添加到尾部
            }
            list.remove(0);//移除第m个元素,重新报数
        }
        System.out.print("最后剩下的是:"+list.get(0));
    }

    public static void main(String[] args){
        List list = new ArrayList();
        int m = inputOut(list);
        remove(list, m);
    }

}

Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐