c 實現乙個小演算法

2022-05-21 17:42:12 字數 841 閱讀 7864

題目:有n個格仔,每個格仔裡有坦克,坦克有兩滴血,你向格仔裡投擲炸彈,每次命中坦克他掉一滴血並隨機像左或者右移動乙個格仔,問最少炸幾次能把全部坦克炸完。

題解:先向偶數格仔投擲炸彈,所有的坦克全跑到奇數格仔裡,然後再向奇數格仔裡投擲炸彈,消滅掉之前偶數格仔裡的坦克並且所有的坦克全跑到偶數格仔裡,再向偶數格仔投擲炸彈,消滅所有坦克。次數為n+(int)n/2;

**如下:

/*包含c++的所有標頭檔案*/ 

#include using

namespace

std;

/*vector(向量): c++中的一種資料結構,確切的說是乙個類.它相當於乙個動態的陣列,當程式設計師無法知道自己需要的陣列的規模多大時,用其來解決問題可以達到最大節約空間的目的.

宣告乙個int向量以替代一維的陣列:vectorv(等於宣告了乙個int陣列v,大小沒有指定,可以動態的向裡面新增刪除)

*/vectorv;

intmain()

編譯執行後你將看到的結果是:

100100

"cout<

*/ cout/*it是定義的迭代器,迭代器其實是一種指標,++it操作的是指標的位址值

auto關鍵字會根據v.begin()的返回值型別自動推斷變數it的資料型別

*//*

begin()得到陣列頭的指標 end()得到陣列的最後乙個單元+1的指標

*/ for(auto it=v.begin();it!=v.end();++it)

cout<<*it<<'';

/* 程式輸出結束 */

cout<}

關於vector容器,詳見:

C 乙個小練習

using system.collections.generic using system namespace csharp入門經典exercises public bool isalive return true public int age set public bool isewe set s...

實現乙個minishell小程式

從標準輸入當中讀取資料 要執行的可執行程式 拆分可執行程式名稱和命令列引數,我們認為從標準輸入當中讀取到的內容第乙個空格之前的資料是可執行程式的名稱,第乙個空格之後的內容都認為是命令列引數 建立子程序,子程序程式替換可執行程式 在子程序程式替換時間內,讓父程序進行等待程序等待 isspace 函式,...

乙個演算法的實現

某同學幫國外某mm做的題。演算法描述 首先將兩個字串和乙個臨界值作為引數傳入函式,比如 aaaaaaaaaa bbaaababaa 2,然後在函式中依次比較兩個字串的每個字元,當不同的字元數超過指定的臨界值後,繼續比較,並將大於等於臨界值且最大數目的第乙個字串中的相同字元轉換為大寫,比如,根據以上輸...