华为机试题 报数1,2,3 报到3 的出列,最后剩下的是谁
Posted todayjust
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试题 报数1,2,3 报到3 的出列,最后剩下的是谁相关的知识,希望对你有一定的参考价值。
描述:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出,问最后留下的那位是原来第几号。
输出:多行,每行对应求的结果
思路:就是使用数组简单的模拟报数过程,报到3的标记为true
import java.util.Scanner; public class baoshu4282 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n; while (sc.hasNext()) { n = sc.nextInt(); boolean[] b = new boolean[n]; int count = n; int t = 0; int i = 0; while (true) { for (i = 0; i < n;i++) { if(b[i]==false) { t++; } if (t == 3) { b[i] = true; t = 0; count--; if (count == 1) break; } } if (count == 1) break; } for(int k=0;k<n;k++){ if(b[k]==false){ System.out.println(k+1); break; } } } } }
以上是关于华为机试题 报数1,2,3 报到3 的出列,最后剩下的是谁的主要内容,如果未能解决你的问题,请参考以下文章
500个小朋友手拉手围成一个圈,依次按123报数,报到3的出列,最后一个留在圈里的是第几个?
经典笔试题:标号1-n的n个人首尾相接,1到3报数,报到3的退出,求最后一个人的标号
经典笔试题:标号1-n的n个人首尾相接,1到3报数,报到3的退出,求最后一个人的标号
C语言试题142之有 n 个人围成一圈,顺序排号。从第一个人开始报数(从 1 到 3 报数),凡报到 3 的人退出 圈子,问最后留下的是原来第几号的那位。