当前位置: 首页 > news >正文

队列处理舞会配对问题

舞伴配对问题。假设在大学生的周末舞会上,男、女学生各自排成

一队。舞会开始时,依次从男队和女队的队头各出一人配成舞伴。

如果两队初始人数不等,则较长的那一队中未配对者等待下一轮舞

曲。要求男、女学生人数及其姓名以及舞会的轮数由用户从键盘输

入,屏幕输出每一轮舞伴的配对名单,如果在该轮中有未配对的,

则要求能够从屏幕显示下一轮第一个出场的未配对者姓名。

思路:首先就是定义两个字符队列,将男女生姓名存入进去,后面还是遍历,需要按男女生人数少的那部分来,一次配对以后,人数多的那一个输出未配对人姓名。

注意每轮舞会配对结束,需要将已经配对的人插入到队列末尾,以便进行下次遍历。

代码如下:

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;public class Solution18{public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("男队:");System.out.println("输入跳舞人数:");int numMales = scanner.nextInt();Queue<String> males = new LinkedList<>();System.out.println("输入跳舞者的姓名:");for (int i = 0; i < numMales; i++) {males.add(scanner.next());}System.out.println("女队:");System.out.println("输入跳舞人数:");int numFemales = scanner.nextInt();Queue<String> females = new LinkedList<>();System.out.println("输入跳舞者的姓名:");for (int i = 0; i < numFemales; i++) {females.add(scanner.next());}System.out.println("请输入舞会的轮数:");int rounds = scanner.nextInt();for (int round = 1; round <= rounds; round++) {System.out.println("第 " + round + " 轮配对名单:");int pairs = Math.min(males.size(), females.size());for (int i = 0; i < pairs; i++) {String male = males.poll();String female = females.poll();System.out.println(male + " 与 " + female + " 配对");males.add(male); // 将配对过的男生重新加入队列末尾females.add(female); // 将配对过的女生重新加入队列末尾}if (!males.isEmpty() && males.size() > pairs) {System.out.println("下一轮首位未配对男生:" + males.peek());}if (!females.isEmpty() && females.size() > pairs) {System.out.println("下一轮首位未配对女生:" + females.peek());}}scanner.close();}
}


http://www.mrgr.cn/news/20183.html

相关文章:

  • 记录一下uni-app 打包小程序设置页面的安全距离
  • 把时间当作朋友
  • 每日最新AIGC进展(59):谷歌提出关键帧插值算法、谷歌研究院提出用实时游戏画面生成算法、中国科学院大学提出复杂场景图像生成算法
  • IT6161 MIPI to HDMI
  • P1786 帮贡排序
  • 河南建筑装饰工程设计专项资质转让注意关键
  • Linux:vim编辑器的基本使用
  • Linux启用client和host之间共享目录的功能
  • 理解 `ThreadLocal` 的线程隔离机制
  • 经验笔记:服务治理框架
  • 某公司一个月窃取我国敏感数据500GB
  • quarkus解说
  • python的logging模块setLevel(LEVELS.get(‘default‘,logging.NOTSET))
  • 手机玩《逆水寒》PC端游,GameViewer远程助力手机远程畅玩《逆水寒》电脑版
  • 磁珠在工业应用中的过热烧毁问题
  • 吃多一时爽,吃少活更长!
  • 深入探讨Spring中Bean的初始化方式
  • 数字与文字组合商标,有一个元素近似整体驳回!
  • 中国各省会、地级市到杭州球面距离的数据
  • 代码随想录 -- 二叉树 -- 翻转二叉树