數學的遊戲,我也來試試

2021-08-08 21:16:41 字數 1042 閱讀 5811

問題:

17世紀法國數學家加斯帕在《數學的遊戲問題》中講的乙個故事:n個教徒和n個非教徒在深海上遇險,必須將一半的人投入海中,其餘的人才能倖免於難,於是想了個辦法:2n個人圍成乙個圓圈,從第乙個人開始依次迴圈報數,每數到第九個人就將他扔入大海,如此迴圈直到僅剩n個人為止 。問怎樣的排法,才能使每次投入大海的都是非教徒?

輸入:教徒/非教徒個數:n

輸出:教徒和非教徒的排列,教徒用@表示,非教徒用+表示,比如15個教徒和15個非教徒排列:

@@@@+++++@@+@@@+@++@@+++@++@@+

解答:

#include "stdio.h"

// 輸入異教徒/教徒人數:i32n

// 返回排列字串

char* dotask(int i32n)

// 依次找到i32n個異教徒丟掉

int pos = 0;

for (int i = 0; i < i32n; i ++)

// 標記該異教徒位置

pszresult[(pos + i32cnt - 1) % i32cnt] = 1;

} // 陣列中0表示教徒,1表示異教徒,換成@+表示

const char psztag = "@+";

for (int i = 0; i < i32cnt; i ++)

// 返回結果字串

return pszresult;

}int main(int argc, char* argv)

} getchar();

return 0;

}

結果:10: @@@+@@+++@@+@+@@++++

11: @@+++@@++@@@@+++++@@@+

12: @++@@@@+++@++@@@++@@+++@

13: ++@++@@@+@+@@+++@+@++@@@@+

14: +@@+++@++@@+@@@@++++@++@@@+@

15: @@@@+++++@@+@@@+@++@@+++@++@@+

聽說發博有積分拿我來試試

你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇的高亮樣式進行展示 全新的ka...

j我來試試能不能得積分

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...

據說寫部落格就能得積分我來試試

據說寫部落格能的肌膚?據說寫部落格就能得積分我來試試 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,mar...