Josephus問題解決方法四(迴圈陣列)
前幾篇都是運用了迴圈單連結串列的知識解決該問題(http://blog.itpub.net/29876893/viewspace-1815055/,http://blog.itpub.net/29876893/viewspace-1850077/,http://blog.itpub.net/29876893/viewspace-1851818/),下面用迴圈陣列來解決該問題。運用的解題思路和第三篇類似,給元素設定標識,退出迴圈的條件就是被標識的元素總數=學生總數。下面給出程式碼:
執行結果:
上面給出的只是解題思路,希望有拋磚引玉的作用,相信讀者還有更好的演算法。當然該程式有更多的功能可以完善,其中涉及到一些細節給出了簡單的註釋。
點選(此處)摺疊或開啟
-
#include<iostream>
-
#define MAX_SIZE 10
-
using namespace std;
-
int j,flag,q,sizeA;
-
char lastone;
-
void searchnote(char *,int);
-
void searchnote(char *A, int n) {
-
cout << "出隊的順序依次是:" << endl;
-
for (int i = 0;i<=sizeA;i++){ //掃描陣列
-
-
if (i == sizeA) { //如果迴圈整個陣列後,則取餘,構成迴圈陣列
-
i%=sizeA;
-
}
-
if(A[i] == NULL) {
-
continue;
-
}
-
q++;
-
if (q == n) { //若q等於間隔數n,則此時A[i]就是被標識的元素,且q置為0
-
cout << A[i]<< " ";
-
flag++;
-
if (flag == sizeA) { //該步驟是為了列印最後一個同學編號,否則最後一個同學別標識為NULL
-
lastone = A[i];
-
}
-
A[i] = NULL;
-
q = 0;
-
}
-
if (flag == sizeA) { //迴圈退出條件
-
cout << endl;
-
cout << "獲勝的同學是:" << endl;
-
cout << lastone;
-
break;
-
}
-
}
-
}
-
-
int main() {
-
-
cout << "請輸入同學的編號:" << endl;
-
char note[MAX_SIZE];
-
for (char ch; cin >>ch, j++) { //構建陣列
-
note[j] = ch;
-
cout << note[j] << " ";
-
sizeA++;
-
}
-
cout << endl;
-
searchnote(note, 4);
-
cout << endl;
- }
上面給出的只是解題思路,希望有拋磚引玉的作用,相信讀者還有更好的演算法。當然該程式有更多的功能可以完善,其中涉及到一些細節給出了簡單的註釋。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29876893/viewspace-1853008/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在迴圈陣列時使用splice()方法刪除陣列遇到的問題陣列
- [PAT B] 1008 陣列元素迴圈右移問題陣列
- 1008 陣列元素迴圈右移問題 (20分)陣列
- js陣列迴圈方法對比JS陣列
- 陣列迴圈陣列
- 1008 陣列元素迴圈右移問題 (20 分)java陣列Java
- 陣列常見的遍歷迴圈方法、陣列的迴圈遍歷的效率對比陣列
- PAT1008 陣列元素迴圈右移問題(java實現)陣列Java
- 1_使用swiper陣列物件迴圈圖片遇到的問題陣列物件
- for..in 迴圈陣列需注意陣列
- PAT-B 1008 陣列元素迴圈右移問題【簡單模擬】陣列
- 【FastJSON】解決FastJson中“$ref 迴圈引用”的問題ASTJSON
- 習題8-3 陣列迴圈右移 及 練習7-8 方陣迴圈右移陣列
- leetcode題解(陣列問題)LeetCode陣列
- 靜態佇列,迴圈陣列實現佇列陣列
- while迴圈和do迴圈、緩衝區、一維陣列While陣列
- 一個關於JS解決陣列相乘問題JS陣列
- Vue 2.0陣列和物件更新後DOM不更新問題的解決方法。Vue陣列物件
- 怎麼解決引用計數 GC 的迴圈引用問題?GC
- 手擼MQ訊息佇列——迴圈陣列MQ佇列陣列
- 解決迴圈引用
- Spring 迴圈依賴的三種方式(三級快取解決Set迴圈依賴問題)Spring快取
- php 迴圈陣列引用傳值改變陣列本身的值PHP陣列
- require()迴圈引用問題UI
- 457. 環形陣列是否存在迴圈陣列
- Go_ if else語句 ,,迴圈,,switch,,陣列Go陣列
- Unity容器建構函式引數迴圈引用問題及解決Unity函式
- 大資料之JAVA基礎(五):迴圈和陣列方法練習大資料Java陣列
- 遞迴解決全排列問題遞迴
- for迴圈無法刪除陣列所有指定元素陣列
- php陣列問題PHP陣列
- Ubuntu16.04使用者登入介面死迴圈問題的解決Ubuntu
- SERVICE問題解決方法
- spring解決迴圈依賴Spring
- ASP.NET Razor – VB 迴圈和陣列簡介ASP.NET陣列
- Go 處理大陣列:使用 for range 還是 for 迴圈?Go陣列
- 迴圈陣列最大欄位和(51Nod-1050)陣列
- ConcurrentHashMap竟然也有死迴圈問題?HashMap
- FastJson中迴圈引用的問題ASTJSON