程式設計小練習 1

2021-06-27 11:03:43 字數 3850 閱讀 8624

問題:給4個1-10的數字,通過加減乘除,得到數字為24就算勝利。輸入:4個1-10的數字;輸出:true or false;

方法一 暴力搜尋

#include #include #include #include using namespace std;

void cal(double re[6], double a, double b)

bool is24points(double a, double b)

} return false;

}void calthree(double re[108], double a, double b, double c)

} cal(fi, a, c);

for (i = 0; i < 6; ++i)

} cal(fi, b, c);

for (i = 0; i < 6; ++i) }}

bool game24points(int a, int b, int c, int d)

calthree(re, a, c, d);

for (i = 0; i < 108; i++)

calthree(re, a, b, d);

for (i = 0; i < 108; i++)

calthree(re, a, b, c);

for (i = 0; i < 108; i++)

return false;

}int main()

方法二 遞迴回溯

#include #include #include #include #include #include const double eps = 1e-6;

double s[4] = ;

bool process(int n)

double a, b;

int i, j;

for (i = 0; i < n; i++)

for (j = i + 1; j < n; j++)

if (a != 0)

s[i] = a;

s[j] = b;

} return false;

}bool game24points(int a, int b, int c, int d)

int main()

問題:乙個字串可以由某個長度為k的字串重複多次得到,稱該串以k為週期。編寫程式求週期,例如,abcabcabcabc以3為週期。

#include int getminperiod(char *inputstring) 

if (j == len - i)

}return result;

}int main()

問題:給定乙個字串,將字串中所有和前面重複多餘的字元刪除,其餘字元保留,輸出處理後的字串。需保證字元順序,並區分大小寫。

#include #include int getresult(const char *input, char *output)

*output = '\0';

return 0;

}int main()

問題:西洋棋中任意兩個皇后都不能處於同一行、同一列或同一斜線上。把n個皇后放在棋盤(n×n) 上,求

放置n 皇后方案的個數。

#include #include #include static int g_table[20] = ;

bool find(int row, int col)

return true;

}void place(int row, int n, int *count)

for (int col = 1; col <= n; col++) }}

int placequeenmethodnum(int n)

int main()

問題:請設計乙個程式,使其可以計算100以內的數的階乘,結果用字串的形式輸出。

#include using namespace std;

void calcnn(int n, char *pout)

} }char *p = pout;

for (i = len; i >= 0; --i)

*p = '\0';

return;

}int main()

問題:實現乙個物件管理器,可以插入,查詢,刪除。插入要求首先判斷是否已經有相同物件存在,刪除操作可以通過萬用字元進行批量刪除;

#include #include using std::set;

using std::vector;

class myobj

myobj(unsigned int key1,unsigned int key2,unsigned int key3):

key1(key1),key2(key2),key3(key3) {}

bool operator < (const myobj& a) const

bool operator == (const myobj& a) const else

}public:

unsigned int key1;

unsigned int key2;

unsigned int key3;

};static setg_myobj;

int addobject (unsigned int key1, unsigned int key2, unsigned int key3)

void deleteobject (unsigned int key1, unsigned int key2, unsigned int key3)

for(int i = 0; i < ve.size(); ++i)

return ;

}int isobjectexist (unsigned int key1, unsigned int key2, unsigned int key3)

void clear(void)

問題:刪除單鏈表中重複的節點,刪除重複不是保留乙個,而是都刪除,剩餘節點逆序輸出,輸出節點除了首節點外其它需自己重新開闢記憶體。

#include #include #include #include #include "oj.h"

using std::map;

using std::vector;

using std::reverse;

int ichanprocess(strnode * pstrin, strnode * pstrout)

p = pstrin;

while (p != null)

p = pstrin;

vectorve;

while (p != null)

p = p->pstrnext;

} reverse(ve.begin(), ve.end());

for (unsigned int i = 0; i < ve.size() - 1; ++i)

ve[ve.size() - 1] = null;

pstrout->data = ve[0]->data;

pstrout->pstrnext = ve[0]->pstrnext;

free(ve[0]);

return 0;

}void vfreechan(strnode * pstrchan)

return;

}

程式設計小練習

檔名稱 test.cpp 完成日期 2016年4月11日 問題描述 ip位址 在日常網路環境中,基本是都在使用b,c兩大類位址,而ade這3類位址都不打可能被使用到。include using namespace std class ip ip位址共4位元組,或者看成結構體所指4部分 unsigne...

程式設計小練習

檔名稱 test.cpp 完成日期 2016年4月11日 問題描述 設計乙個 類,要有 名 威力。在上週的遊戲角色類role基礎上擴充,為每個角色建立乙個 並在攻擊 attack 行為發生時,在其中起作用。include using namespace std class weapon weapon...

程式設計小練習

專案 警察和廚師 1 根據下面的類圖,定義各個類 要求 各個成員函式,只要輸出相關的資訊即可,暫不深究其業務功能 請為各個類增加建構函式 在實現中,可以增加需要的其他函式 自行編制main函式,完成初步的測試 include using namespace std class person priv...