寒假訓練 2筆記

2021-10-02 11:25:30 字數 1859 閱讀 1885

方法一

for

(i=1

;i)//n為被分解的的數

emmm超時了,明天在更進。。。。

1.輸入多個字串時`

while(gets(s))//這樣既可

while(gets(s)!=

eof)//會報錯!!!

2.回文質數(洛谷和vjudge都做過)

ps:乙個數既是回文數又是素數

原先的想法

寫兩個函式,乙個判斷素數,乙個判斷回文,超時了。。。

看了題解之後

構造回文數

!!!偶數字的回文質數只有11

於是我們可以先判斷位數

再分別構造位數為3,5,7的回文質數

#include

#include

intlength

(int n)

return count;

}int

prime

(int n)

intmain()

,d[10005

],count=0;

int d1,d2,d3,d4,t;

while

(scanf

("%d %d"

,&a,

&b)!=

eof)

}for

(i=0

;i)printf

("%d\n"

,d[i]);

printf

("\n");

}return0;

}

3.坑點

1已經知道現有會員n人,把會員從1到n編號,其中會長的號碼是n號,凡是和會長是老朋友的,那麼該會員的號碼肯定和n有大於1的公約數,否則都是新朋友,現在會長想知道究竟有幾個新朋友

##解題思路

原先:寫乙個判斷兩個數最大公約數的函式,從1到n-1每乙個數與n判斷最大公約數,如果是1,則為新朋友,count++

又又又超時了。。。。

後來:1.將n的所有因數存放進乙個陣列裡

2.從1到n-1每個數判斷過去(記為i),因數陣列遍歷,只要i%因數==0,就count++(代表老朋友),break,進入下乙個數的判斷

3.輸出n-count-1

#include

intmain()

for(j=

1;j}printf

("%d\n"

,num-count-1)

;}return0;

}

5.學習使用qsort函式的用法,從小到大

乙個陣列裡兩兩相加的和放在應乙個陣列裡

從大到小排序,逆序輸出m個即可

#include

#include

int b[

5000000];

intcmp

(const

void

*a,const

void

*b)int

main()

}qsort

(b,r,

sizeof

(b[0])

,cmp)

;for

(i=r-

1;i>r-m;i--

)printf

("%d "

,b[i]);

printf

("%d\n"

,b[r-m]);

}return0;

}

寒假訓練2 總結

1 hdu 4810 wall painting 組合數 二進位制拆分 2 hdu 5573 binary tree 二進位制思維題 3 hdu 5501 the highest mark 揹包 貪心 4 hdu 5493 queue 樹狀陣列 二分查詢 5 hdu 3639 hawk and ch...

寒假訓練 day2

定義 窮竭搜尋是將所有的可能性羅列出來,在其中尋找答案的方法。主要介紹深度優先搜尋和廣度優先搜尋。廣度優先搜尋 bfs 也是搜尋的手段之一。它與深度優先搜尋類似,從某個狀態出發探索所有可以到達的狀態。不同之處在於搜尋的順序,廣度優先搜尋總是先搜尋距離初始狀態近的狀態。總結 廣度優先搜尋與深度優先搜尋...

ROS2 筆記0 安裝

作業系統 ubuntu 18.04 確保系統的local支援utf 8。進行如下的命令設定 sudo locale gen en us en us.utf 8 sudo update locale lc all en us.utf 8 lang en us.utf 8 export lang en ...