九度機試筆記20170903 1

2021-08-07 17:02:23 字數 2025 閱讀 9038

題目1488:百萬富翁問題

#include 

using

namespace

std;

int main()

cout

0;}

題目1489:計算兩個矩陣的乘積

#include 

using

namespace

std;

int main()

; int b[3][2]=;

int sum = 0, i, j, k;

while(cin>>a[0][0]>>a[0][1]>>a[0][2])

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

for(j=0; j<2; j++)

cin>>b[i][j];

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

cout

<0?" ":" \n");

sum = 0;}}

}return

0;}

注意:雖然題目沒有明確說明有多對矩陣乘積,但是寫的時候需要考慮。(3次ac)

#include 

#include

void mystrcat(char dststr,char srcstr)

int main()

; char s[2000]=;

while(scanf("%s",d)!=eof)

return

0;}

注意:這裡我犯了乙個錯誤,使用了while(scanf(「%s」,d)),需要將該語句修改為:while(scanf(「%s」,d)!=-1)或while(scanf(「%s」,d)!=eof),不然會導致迴圈太多次,報錯output limit exceed。(2次ac)

題目1055:陣列逆置

#include 

#include

using

namespace

std;

int main()

還有幾種字串反轉的辦法,見

題目1056:最大公約數

#include 

using

namespace

std;

int main()

if(b%a==0) cout}}

}return

0;}

辦法比較笨,其實還有老師曾經教過的輾轉相除法,竟然想不起來了(t▽t),下面是找的簡潔的**。

#include

void main() /* 輾轉相除法求最大公約數和最小公倍數 */

printf("the largest common divisor:%d\n", a);

printf("the least common multiple:%d\n", m

*n/a);

}

題目1057:眾數

#include 

#include

using

namespace

std;

int main()

; int tmp;

while(cin>>tmp)

int res = 1;

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

if(table[i]>table[res])

res = i;

cout

}return

0;}

題目1050:完數

#include 

using

namespace

std;

int main()

}if(sum==i)

cout

<<' '

}}

九度機試筆記20170903 2

學習 九度機試指南3 如下。有乙個遺留問題 題目1051 數字階梯求和 等待解決,mark一下。題目1153 括號匹配問題 include include using namespace std stack s char src 101 char dst 101 int main else if s...

機試筆記1

1.scanf遇到空格會結束,所以讀入一行字串時可以使用getline cin,str 或者gets str gets會把回車讀入 2.在scanf和gets之間加入getchar 來消除 n 3.進製轉換 x十六進製制小寫,x十六進製制大寫 o 八進位制 4.2d表示這個數字佔2位,02d可以使數...

機試筆記6 查詢

查詢的問題一般可能會想到排序 二分查詢,或者順序查詢,但是在機試中很容易出錯,所以比較推薦用c 的map,雖然它實現的是雜湊表的功能,但是它的實現確實紅黑樹,所以平均時間複雜度為nlogn 第一類查詢問題即靜態查詢,有一組資料,在這資料中找某乙個值,當然值不會簡簡單單的給個整數,他可能是個結構體。這...