PTA-線性表實驗(JAVA)

題目1:Josephus環的問題及算法

【實驗內容】

編程實現如下功能:

題意說明:古代某法官要判決n個犯人的死刑,他有一條荒唐的法律,將犯人站成一個圓圈,從第start個犯人開始數起,每數到第distance的犯人,就出列處決;再從下一個犯人開始計數,數到的犯人被處決……以此類推不斷循環,直到剩下最后一個犯人予以赦免。此為Josephus環問題。

要求:采用線性表(可以為順序表或鏈表)標記n個人,這n個人分別標為A、B、C……,請用Java語言編寫程序,按順序輸出出列人的標記。

【實驗要求】

輸入格式:

輸入為3個正整數,分別表示n、start、distance,均不超過1000

輸出格式:

輸出為一行整數,為出列人的編號。每個整數后一個空格。

(1)解決思路

(2)代碼截圖

(3)源代碼

import java.util.*;
public class self_test02 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("輸入均不超過1000");System.out.print("出列數:");int num = sc.nextInt();//出列System.out.print("開始數:");int start = sc.nextInt();//開始System.out.print("結束數:");int end = sc.nextInt();//結束ArrayList<String> list = new ArrayList<String>();for (int i = start; i <= end; i++) {list.add(String.valueOf(i));}//	第幾個人,當num=reset就重置為0int reset = 0;int j = 0;//	list.size() 鏈表長度	數組長度是 lengthString ans = "";while (!list.isEmpty()) {Iterator it = list.iterator();while (it.hasNext()) {reset++;if (num == reset) {ans += it.next();ans += " ";reset = 0;it.remove();} else {it.next();}}}String ans1 = ans.substring(0, ans.length() - 1);System.out.println(ans1);}}
}

(4)實驗結果

題目2:銀行業務隊列簡單模擬

?【實驗內容】?

設某銀行有A、B兩個業務窗口,且處理業務的速度不一樣,其中A窗口處理速度是B窗口的2倍 —— 即當A窗口每處理完2個顧客時,B窗口處理完1個顧客。給定到達銀行的顧客序列,請按業務完成的順序輸出顧客序列。假定不考慮顧客先后到達的時間間隔,并且當不同窗口同時處理完2個顧客時,A窗口顧客優先輸出。

【實驗要求】

輸入格式:

輸入為一行正整數,其中第1個數字N(≤1000)為顧客總數,后面跟著N位顧客的編號。編號為奇數的顧客需要到A窗口辦理業務,為偶數的顧客則去B窗口。數字間以空格分隔。

輸出格式:

按業務處理完成的順序輸出顧客的編號。數字間以空格分隔,但最后一個編號后不能有多余的空格。

輸入樣例:

8 2 1 3 9 4 11 13 15

輸出樣例:

1 3 2 9 11 4 13 15?

?(1)解題思路

?(2)代碼截圖

?(3)源代碼

import java.util.*;
public class self_test {public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner = new Scanner(System.in);int num = scanner.nextInt();int[] arr = new int[num];
//		創建一個數組,用于存放所有輸入值(除第一位)for (int i = 0; i < num; i++) {arr[i] = scanner.nextInt();}		
//		創建a,b隊列ArrayDeque arr_a = new ArrayDeque();ArrayDeque arr_b = new ArrayDeque();
//		編號為奇數的顧客需要到A窗口辦理業務,為偶數的顧客則去B窗口for (int i = 0; i < arr.length; i++) {if (arr[i] % 2 == 0) {arr_b.add(arr[i]) ;} else {arr_a.add(arr[i]) ;}}		String str = new String();while(!arr_a.isEmpty() && !arr_b.isEmpty()) {
//			A的元素個數為偶數,則從A中取出兩個元素和一個B中的元素if (arr_a.size() % 2 ==0) {str += arr_a.removeFirst()+" ";str += arr_a.removeFirst()+" ";str += arr_b.removeFirst()+" ";}else {
//				A的元素個數為奇數,則從A中取出一個元素和一個B中的元素str += arr_a.removeFirst()+" ";str += arr_b.removeFirst()+" ";}}
//		A為空時,把B的元素賦值給Aif (arr_a.isEmpty()) {arr_a = arr_b;}
//		將A中的所有元素取出,依次將它們拼接成一個字符串if (!arr_a.isEmpty()) {while(!arr_a.isEmpty()) {str+=arr_a.removeFirst()+" ";}}
//		去掉最后一個空格System.out.println(str);}
}

?(4)運行結果

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38040.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38040.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38040.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Spring Boot AOP通知順序】

文章目錄 一、Spring Boot AOP簡介二、通知順序1. 通知類型及其順序示例代碼 2. 控制通知順序示例代碼 一、Spring Boot AOP簡介 AOP&#xff08;Aspect-Oriented Programming&#xff0c;面向切面編程&#xff09;是對OOP&#xff08;Object-Oriented Programming&#xff0c…

使用Dockerfile構建鏡像 使用docker-compose 一鍵部署IM項目

本文講解&#xff1a;使用Dockerfile構建鏡像 & 使用docker-compose 一鍵部署IM項目。 im項目地址&#xff1a;xzll-im &#xff0c;歡迎志同道合的開發者 一起 維護&#xff0c;學習&#xff0c;歡迎star &#x1f604; 1、Dockerfile編寫與鏡像構建&容器運行 Dockerf…

Spring Boot中使用Thymeleaf進行頁面渲染

Spring Boot中使用Thymeleaf進行頁面渲染 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我們將探討如何在Spring Boot應用中使用Thymeleaf模板引擎進行頁面…

Nginx和CDN運用

一.Web緩存代理 1.工作機制 代替客戶機向網站請求數據&#xff0c;從而可以隱藏用戶的真實IP地址。將獲得的網頁數據&#xff08;靜態Web元素&#xff09;保存到緩存中并發送給客戶機&#xff0c;以便下次請求相同的數據時快速響應。 2.代理服務器的概念 代理服務器是一個位…

Kubernetes面試整理-如何監控Kubernetes集群的健康和性能?

監控 Kubernetes 集群的健康和性能是確保集群穩定運行的重要任務。以下是一些常用的方法和工具來監控 Kubernetes 集群: 1. Prometheus 和 Grafana Prometheus 是一個開源的系統監控和報警工具,Grafana 是一個開源的分析和監控平臺。兩者通常一起使用來監控 Kubernetes 集群。…

k8s token加新節點

在 master 節點執行 kubeadm token create --print-join-command得到token和cert&#xff0c;這兩個參數在2個小時內可以重復使用&#xff0c;超過以后就得再次生成 kubeadm join apiserver.k8s.com --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha…

【入門】5分鐘了解卷積神經網絡CNN是什么

本文來自《老餅講解-BP神經網絡》https://www.bbbdata.com/ 目錄 一、卷積神經網絡的結構1.1.卷積與池化的作用2.2.全連接層的作用 二、卷積神經網絡的運算2.1.卷積層的運算2.2.池化的運算2.3.全連接層運算 三、pytorch實現一個CNN例子3.1.模型的搭建3.2.CNN完整訓練代碼 CNN神…

【Dison夏令營 Day 04】如何用 Python 編寫簡單的數字猜謎游戲代碼

上個周末&#xff0c;我整理了一份可以用 Python 編寫的游戲列表。但為什么呢&#xff1f; 如果您是 Python 程序員初學者&#xff0c;編寫有趣的游戲可以幫助您更快更好地學習 Python 語言&#xff0c;而不會被語法之類的東西所困擾。我在學習 Python 的時候曾制作過一些這樣…

Hadoop-03-Hadoop集群 免密登錄 超詳細 3節點公網云 分發腳本 踩坑筆記 SSH免密 服務互通 集群搭建 開啟ROOT

章節內容 上一節完成&#xff1a; HDFS集群XML的配置MapReduce集群XML的配置Yarn集群XML的配置統一權限DNS統一配置 背景介紹 這里是三臺公網云服務器&#xff0c;每臺 2C4G&#xff0c;搭建一個Hadoop的學習環境&#xff0c;供我學習。 之前已經在 VM 虛擬機上搭建過一次&…

短視頻矩陣系統搭建APP源碼開發

前言 短視頻矩陣系統不僅有助于提升品牌影響力和營銷效率&#xff0c;還能幫助企業更精準地觸達目標受眾&#xff0c;增強用戶互動&#xff0c;并利用數據分析來持續優化營銷策略。 一、短視頻矩陣系統是什么&#xff1f; 短視頻矩陣系統是一種通過多個短視頻平臺進行內容創作…

Vue 3 實戰教程(快速入門)

Vue 3 實戰教程&#xff08;快速入門&#xff09; Vue.js 是一個用于構建用戶界面的漸進式框架&#xff0c;Vue 3 是 Vue 的最新版本&#xff0c;帶來了許多改進和新特性。本文將通過一個簡單的項目示例&#xff0c;帶你快速入門 Vue 3 的基礎使用。 環境設置 安裝 Node.js …

多多代播24小時值守:電商直播時代是帶貨爆單的關鍵

在電商直播盛行的今天&#xff0c;直播帶貨已成為品牌與消費者溝通的關鍵。然而&#xff0c;流量波動大&#xff0c;競爭激烈&#xff0c;使品牌面臨諸多挑戰。因此&#xff0c;許多品牌尋求專業代播服務&#xff0c;并特別強調24小時值守的重要性。 流量來源的不穩定性是一個顯…

《VUE.js 實戰》讀書筆記

1. 初識vue.js MVVM模式從MVC模式演化而來&#xff0c;但是MVVM模式更多應用在前端&#xff0c;MVC則是前后端共同表現。傳統開發模式&#xff1a;jQuery RequireJS ( SeaJS ) artTemplate ( doT ) Gulp ( Grunt)。vue.js可以直接通過script引入方式開發&#xff0c;也可以…

Linux下安裝RocketMQ:從零開始的消息中間件之旅

感謝您閱讀本文&#xff0c;歡迎“一鍵三連”。作者定會不負眾望&#xff0c;按時按量創作出更優質的內容。 ?? 1. 畢業設計專欄&#xff0c;畢業季咱們不慌&#xff0c;上千款畢業設計等你來選。 RocketMQ是一款分布式消息中間件&#xff0c;具有高吞吐量、低延遲、高可用性…

本末倒置!做660+880一定要避免出現這3種情況!

每年都有不少人做過660題&#xff0c;但是做過之后&#xff0c;并沒有真正理解其中的題目&#xff0c;所以做過之后效果也不好&#xff01;再去做880題&#xff0c;做的也會比較吃力。 那該怎么辦呢&#xff0c;不建議你繼續做880題&#xff0c;先把660給吃透再說。 接下來給…

PostgreSQL使用教程

安裝 PostgreSQL 您可以從 PostgreSQL 官方網站下載適合您操作系統的安裝程序&#xff0c;并按照安裝向導進行安裝。 啟動數據庫服務器 安裝完成后&#xff0c;根據您的操作系統&#xff0c;通過相應的方式啟動數據庫服務器。 連接到數據庫 可以使用命令行工具&#xff08;如 p…

Objective-C使用塊枚舉的細節

對元素類型的要求 在 Objective-C 中&#xff0c;NSArray 只能存儲對象類型&#xff0c;而不能直接存儲基本類型&#xff08;例如 int&#xff09;。但是&#xff0c;可以將基本類型封裝在 NSNumber 等對象中&#xff0c;然后將這些對象存儲在 NSArray 中。這樣&#xff0c;en…

Maven編譯打包時報“PKIX path building failed”異常

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 方法11.報錯信息2.InstallCert.java3.生成證書文件 jssecacerts4.復制 jssecacerts 文件5. 然后重啟Jenkins 或者maven即可 方法21.下載證書2. 導入證書執行keytool…

7.優化算法之分治-快排歸并

0.分治 分而治之 1.顏色分類 75. 顏色分類 - 力扣&#xff08;LeetCode&#xff09; 給定一個包含紅色、白色和藍色、共 n 個元素的數組 nums &#xff0c;原地對它們進行排序&#xff0c;使得相同顏色的元素相鄰&#xff0c;并按照紅色、白色、藍色順序排列。 我們使用整數…

Elasticsearch (1):ES基本概念和原理簡單介紹

Elasticsearch&#xff08;簡稱 ES&#xff09;是一款基于 Apache Lucene 的分布式搜索和分析引擎。隨著業務的發展&#xff0c;系統中的數據量不斷增長&#xff0c;傳統的關系型數據庫在處理大量模糊查詢時效率低下。因此&#xff0c;ES 作為一種高效、靈活和可擴展的全文檢索…