//程式3-5 tex中的引號
//題意:給出一段字串,將左引號變為`` 右引號變為''
//輸入:帶有引號的字串
//輸出:變化之後的字串
//思路:用flag訊號q 來判斷左右,每當表達一次引號,則變換一次q
#include
int main() else
printf("%c",c);
}return0;}
//程式3-6 wertyu
//輸入:輸入錯位之後的字串(保證輸入合法)
//輸出:輸出原先的字串
//思路:使用乙個常量陣列用於儲存順序字串表,找到錯位後的字元的位置,輸出前乙個
#include
char s="`1234567890-=qwertyuuiop\\asdfghjkl;'zxcvbnm,./";// 單單乙個\表示轉義 若表達\ 用'\\'
int main()
return0;}
//程式3-7 回文詞
#include
#include
#include
char r(char ch);
const
char* rev="a 3 hil jm o 2tuvwxy51se z 8 ";
const
char* msg= ;
int main()
printf("%s -- is %s.\n\n",s,msg[m*2+p]);
}return0;}
char r(char ch)
//例題3-4 猜數字遊戲的提示(master-mind hints)
//輸入:給定一組數,第一行為這組數包含的數字個數,第二行為這組數,往後皆為猜測陣列,全猜零結束
//輸出:輸出形如其中a為對上的數的個數,b為在兩個陣列中都出現過的數字,且沒有對上,在乙個陣列出現一次,另乙個兩次算一次
//思路:直接統計a ,統計兩陣列中1~9出現的次數,取小的那個(即兩陣列的重合部分)再減去已經對上的數字 則為某一數字對於b的貢獻
#include
#define maxn 1010
int main()
if(b[0]==0) break;//如果測試陣列為0 結束迴圈
for(int d=1; d<=9; d++)
if(c1//取兩者中的重合部分
else b+=c2;
}printf(" (%d,%d)\n",a,b-a);}}
return0;}
//例題 3-5 生成元 (digit generator,acm/icpc seoul 2005,uva1583)
//先用乙個陣列儲存生成元,角標對應的就是要求的數,而對應角標的陣列裡的數則為生成元
#include
#include
#define maxn 100005
int ans[maxn];
int main()
if(ans[y]==0||mscanf("%d",&t);
while(t--)
return0;}
//例題3-6 環狀序列
#include
#include
#define maxn 105
int less(char* s,int p,int q)
int main()
return
0;}
演算法競賽入門經典 第三章
最長回文子串 當字串的長度比較小的時候 attention 最好把陣列開在外面,如果開在main外面並且陣列太大,就會異常退出的。最長回文子串 include include include define maxn 5000 10 char buf maxn s maxn int main prin...
演算法競賽,第三章,開燈問題
開燈問題 描述 有 n 盞燈,編號為 1 n,第 1 個人把所有燈開啟,第 2 個人按下所有編號為 2 的倍數的開關 這些燈將被關掉 第 3 個人按下所有編號為 3 的倍數的開關 其中關掉的燈將被開啟,開著的燈將被關閉 依此類推。一共有 k 個人,問最後有哪些燈開著?輸入 n 和 k,輸出開著的燈編...
《演算法競賽入門經典》第三章習題3 4
題目名稱 計算器 題目描述 編寫程式,讀入一行恰好包含乙個加號 減號或乘號的表示式,輸出它的值。這個運算子保證是二元運算子,且兩個運算子均不超過100的非負整數。運算子和運算子可以緊挨著,也可以用乙個或多個空格 tab隔開。行首末尾均可以有空格。樣例輸入 1 1 樣例輸出 2 樣例輸入 2 5 樣例...