zoukankan      html  css  js  c++  java
  • Java实现 蓝桥杯 算法训练VIP 报数(暴力+数学)约瑟夫环问题

    试题 算法训练 报数

    问题描述
      现有n个同学站成一圈,顺时针编号1至n。从1号同学开始顺时针1/2报数,报到1的同学留在原地,报到2的同学退出圆圈,直到只剩一名同学为止。问最后剩下的同学编号。
    输入格式
      仅一行,一个正整数n。
    输出格式
      仅一行,一个正整数。
    样例输入
    400
    样例输出
    289
    数据规模和约定
      n<=2000000

    PS:

    这个题你把他反过来想,他问的就是最后一个人,也就是最后一个被淘汰的人
    你不如,从第一个人开始找,然后涨到那么多人,他的位置就是最后一个人的位置

    
    import java.util.Scanner;
    
    public class Main {
    
    	 
    	public static void main(String[] args) { 
    		Scanner sc = new Scanner(System.in);
    		int n=sc.nextInt();
    		  int m=2,people=0;
    		  for (int i = 2; i <=n; i++) {
    			  people=(people+m)%i;
    		}
    		  System.out.println(people+1);
    	}
    
    }
    
    
  • 相关阅读:
    组合模式
    C#+ArcEngine中com对象的释放问题
    备忘录模式
    C#中的DataSet添加DataTable问题
    jenkins从节点
    jenkins Publish over SSH
    jenkins凭据
    jenkins maven项目
    jenkins部署-docker
    zabbix api
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074591.html
Copyright © 2011-2022 走看看