華為上機筆試題之約瑟夫環
/* 題目描述 有一個數組a[N]順序存放0~N-1,要求每隔兩個數刪掉一個數,到末尾時迴圈至開頭繼續進行,求最後一個被刪掉的數的原始下標位置。以8個數(N=7)為例:{0,1,2,3,4,5,6,7},0->1->2(刪除)->3->4->5(刪除)->6->7->0(刪除),如此迴圈直到最後一個數被刪除。 輸入描述: 每組資料為一行一個整數n(小於等於1000),為陣列成員數,如果大於1000,則對a[999]進行計算。 輸出描述: 一行輸出最後一個被刪掉的數的原始下標位置。 輸入例子: 8 輸出例子: 6 */ import java.util.LinkedList; import java.util.List; import java.util.*; public class yuesefu { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int num = scan.nextInt(); List<Integer> all = new LinkedList<Integer>(); for(int i = 0;i <num;i++){ all.add(i); } System.out.println(all); int i = 0; int s =all.size(); //System.out.println(all[0]); for(int n = 0;n < num-1 ;n++){ i = (i + 2) % all.size(); all.remove(i); } System.out.println("最後剩下的是編號為" + all.get(0) + " 的人"); } }
相關推薦
華為上機筆試題之約瑟夫環
/* 題目描述 有一個數組a[N]順序存放0~N-1,要求每隔兩個數刪掉一個數,到末尾時迴圈至開頭繼續進行,求最後一個被刪掉的數的原始下標位置。以8個數(N=7)為例:{0,1,2,3,4,5,6,
數據結構(一)線性表循環鏈表之約瑟夫環
cli amp tlist isp alloc 個人 pla 初始 ont (一)前提 41個人報數,1-3,當誰報數為3,誰就去嗝屁。現在獲取他們嗝屁的順序 (二)實現結構 順序:3->1->5->2->4 (三)代碼實現 #def
迴圈佇列之約瑟夫環
此問題的要求為:n個人圍坐一圈,從第一個人開始數,每數到k,這個人就出列,圈中的下一個人重新從1開始計數,直到剩餘人數不足k人 下面我畫圖來加深理解(抱歉目前還不會用電腦繪製動畫,只好手動繪製,比較粗糙,之後有時間我改進下!!(看起來像個效果器上面的一堆旋鈕哈哈哈 下面附上完整
Java藍橋杯之約瑟夫環
import java.util.ArrayList; public class Test8 { /** * @param args * 約瑟夫環 * * 幸運數字 */ public static void main(String[]
順序表之約瑟夫環(josephus)
1.問題描述 n個犯人站成一個圈,從第s個人開始數起,每數到第d個犯人,就拉出來斬了,然後再從下一個開始數d個,數到的人再處決,………………,直到剩下最後一個犯人就予以赦免。 2.演
資料結構之約瑟夫環C語言實現
資料結構,是很重要的一門學科,每年考研,資料結構是各大院校必考的科目。當然,資料結構,最令人頭疼的就是演算法設計題了。為了幫助大家理解和掌握資料結構常見的演算法,學長推出系列文章,為大家分享這些重要演算法的C語言完成實現,大家有條件的話,可以在電腦上除錯執行,加深
資料結構之約瑟夫環
約瑟夫斯問題(有時也稱為約瑟夫斯置換),是一個出現在電腦科學和數學中的問題。在計算機程式設計的演算法中,類似問題又稱為約瑟夫環。 有個囚犯站成一個圓圈,準備處決。首先從一個人開始,越過個人(因為第一個人已經被越過),並殺掉第k個人。接著,再越過個人,並殺掉第k個人。
資料結構線性表之約瑟夫環&&多項式求和&&差&&積&&導數&&給變數賦值小練習
問題描述 約瑟夫環(約瑟夫問題)是一個數學的應用問題:已知n個人(以編號1,2,3…n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又出列;依此規律重複下去,直到圓桌周圍的人全部出列。通常
華為2017筆試題 公司年會
題目: 這個題目如果用遞迴的函式的話,主要就是要避免死迴圈 程式碼(沒地方提交,不知道對不對): #include <iostream> #include<algorithm
華為筆試題目--約瑟夫環(Joseph)修改版
測試空間旗下大頭針出品 這個可是已經執行通過了的。大家可以看看,如果有什麼問題,及時交流。 #include<stdio.h>#include<stdlib.h>typedef struct Node *PNode; struct Node { int num;
數據結構之約瑟夫問題(循環鏈表)(C++版)
單鏈表 字母 exit 循環鏈表 urn list ext struct 插入 #include <iostream>#include <stdlib.h>using namespace std; typedef char ElemType;type
面試題小記:1、統計字符串出現的次數,2、約瑟夫環問題
lse UNC aaa ret nal 約瑟夫環問題 b2c else 用法 今天面到了一個比較有意思的筆試題,先記錄一下:1.字符串類似‘aaabbccddd’,寫個方法得出‘3a2b2c3d‘,即統計字符串出現的個數$arr = str_split(‘aaabbccdd
連結串列面試題----約瑟夫環相關
約瑟夫環相關連結串列面試題 繼上篇部落格之------------ 什麼是約瑟夫環 約瑟夫環 判斷是否成環 求環的長度 環的入口點
約瑟夫環之二(用遞迴的思想解決Josephus問題)【轉】
初始情況: 0, 1, 2 ......n-2, n-1 (共n個人) 第一個人(編號一定是(m-1)%n,設之為(k-1) ,讀者可以分m<n和m>=n的情況分別試下,就可以得出結論) 出列之後, 剩下的n-1個人組成了一個新的約瑟夫環(以編
約瑟夫環問題:有n個人排成一列或是一圈,從編號為k的人開始報數,數到m的那個人出列。(Java實現)
文章目錄1.題目2.解析3.總程式碼 約瑟夫環問題 約瑟夫環描述:約瑟夫環(約瑟夫問題)是一個數學的應用問題:已知n個人(以編號1,2,3…n分別表示)圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列;他的下一個人又從1開始報數,數到m的那個人又
[CSP]201712-2 遊戲 暴力+(以此為例)約瑟夫環的遞推
愚蠢的看錯題了。中文讀題能力還不如英文,有待提升。 所以這道題用普通的陣列模擬操作就可以了。總之跟暴力模擬的約瑟夫環沒什麼區別。 可以用next陣列模擬指標做資料結構,但是資料範圍不大的情況下不建議這麼寫,維護一個指標環寫起來還是比較麻煩的。 #include <
C/C++面試之算法系列--約瑟夫環:每隔兩個迴圈刪除陣列元素,求最後刪除者的下標問題
對於只讀陣列,普通的標誌法都不能用了,將高位置1遍歷完後清除的方法借鑑意義最高;時間和空間效率最均衡;連結串列法可以處理只讀陣列的問題;迴圈佇列法此時無法實現;當然對於標誌法,可以額外申請空間儲存標誌,也可以處理只讀問題,但空間效率下來了 (adsbygoogle = window
約瑟夫環之二(用遞迴的思想解決Josephus問題)
初始情況: 0, 1, 2 ......n-2, n-1 (共n個人) 第一個人(編號一定是(m-1)%n,設之為(k-1) ,讀者可以分m<n和m>=n的情況分別試下,就可以得出結論) 出列之後, 剩下的n-1個人組成了一個新的約瑟夫環(以編號為k==m
PHP坑之:約瑟夫環
<?php /* 約瑟夫環: 問題:一群猴子排成一圈,按1,2,…….,n依次編號。然後從第一隻開始數,數到第m只,把它踢出圈,從它後面再開始數,再數到第m只,再把它踢出去………………….,如此不停的進行下去,直到最後只剩下一隻猴子為止,那隻猴子就叫做大王。要求:輸入
JS資料結構第三篇---雙向連結串列和迴圈連結串列之約瑟夫問題
一、雙向連結串列 在上文《JS資料結構第二篇---連結串列》中描述的是單向連結串列。單向連結串列是指每個節點都存有指向下一個節點的地址,雙向連結串列則是在單向連結串列的基礎上,給每個節點增加一個指向上一個節點的地址。然後頭結點的上一個節點,和尾結點的下一個節點都指向null。同時LinkedList類中再增