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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Josephus問題解決方法五(遞迴)遞迴
- Josephus問題解決方法三(單向迴圈連結串列標識法)
- Josephus問題解決方法一
- Josephus問題解決方法二
- 陣列元素迴圈右移問題陣列
- 在迴圈陣列時使用splice()方法刪除陣列遇到的問題陣列
- JavaScript 中 for in 迴圈和陣列的問題JavaScript陣列
- 陣列迴圈陣列
- js陣列迴圈方法對比JS陣列
- 陣列迴圈移位陣列
- for迴圈訪問php的索引陣列PHP索引陣列
- 陣列常見的遍歷迴圈方法、陣列的迴圈遍歷的效率對比陣列
- js陣列操作--使用迭代方法替代for迴圈JS陣列
- [PAT B] 1008 陣列元素迴圈右移問題陣列
- 1008 陣列元素迴圈右移問題 (20分)陣列
- 陣列迴圈輸出陣列
- awk 陣列和迴圈陣列
- 1008 陣列元素迴圈右移問題 (20 分)java陣列Java
- 1_使用swiper陣列物件迴圈圖片遇到的問題陣列物件
- 陣列解決約瑟夫環問題陣列
- for..in 迴圈陣列需注意陣列
- php陣列迴圈遍歷PHP陣列
- 習題8-3 陣列迴圈右移 及 練習7-8 方陣迴圈右移陣列
- 如何在 iOS 中解決迴圈引用的問題iOS
- 迴圈陣列最大子段和陣列
- linux awk 陣列和迴圈Linux陣列
- 靜態佇列,迴圈陣列實現佇列陣列
- PHP通過迴圈來檢測四維陣列中的值是否存在陣列中PHP陣列
- PAT1008 陣列元素迴圈右移問題(java實現)陣列Java
- while迴圈和do迴圈、緩衝區、一維陣列While陣列
- sybase中cursor的使用中死迴圈問題解決
- JS使用迴圈按指定倍數分割陣列組成新的陣列的方法JS陣列
- 手擼MQ訊息佇列——迴圈陣列MQ佇列陣列
- 【FastJSON】解決FastJson中“$ref 迴圈引用”的問題ASTJSON
- 怎麼解決引用計數 GC 的迴圈引用問題?GC
- 解決迴圈引用
- 一個關於JS解決陣列相乘問題JS陣列
- Vue 2.0陣列和物件更新後DOM不更新問題的解決方法。Vue陣列物件