發表文章

PRIME1 - Prime Generator

圖片
PRIME1 - Prime Generator 題目敘述: Peter wants to generate some prime numbers for his cryptosystem. Help him! Your task is to generate all prime numbers between two given numbers! INPUT: The input begins with the number t of test cases in a single line (t<=10). In each of the next t lines there are two numbers m and n (1 <= m <= n <= 1000000000, n-m<=100000) separated by a space. OUTPUT: For every test case print all prime numbers p such that m <= p <= n, one number per line, test cases separated by an empty line. 題目解析: 要求先輸入一整數,為接下來要輸入的資料組數,接著輸出每組輸入的兩數字中間的 Prime Number 。難度不高,但在CPE等程式能力檢定考試內,是非常常出現的送分題。 練習重點:pair、queue、質數偵測演算法 開始實作: 第一個輸入的變數 t 決定了總共要處理多少組資料,而每一組資料分別有 m、n 作為等等要尋找 Prime Number p 的依據,在題目裡面有關於  t<=10,  1 <= m <= n <= 1000000000, n-m<=100000 的限制,為審理系統將會輸入的默認規則,基本上不用特意寫防呆機制,但如果有心還是可以自行補上。要注意的是 1 <= m <= n <= 1000000000,我們必須確定 m、n 都還是在 integer 的範圍內,如果有超過的情況,那就要根據情況做變化,不能只用 integer 做為唯一的承接資料型態,不過...

SPOJ - "TEST - Life, the Universe, and Everything"

圖片
TEST - Life, the Universe, and Everything 題目敘述: Your program is to use the brute-force approach in order to  find the Answer to Life, the Universe, and  Everything.  More precisely... rewrite small numbers from input to output. Stop processing input after  reading in the number 42. All numbers at input are integers of one or two digits. 題目解析: 前面幾句都是廢話可以忽略,但其中 brute-force 有蠻力硬解的意思,就是在意指說這個題目的實作沒有限制執行時間,解題方向會比較廣;輸入數字串 ( 沒有指名長度,即沒有限制 ),並在輸入完成( 注意如何判定輸入完成 )後依序( FIFO )印出直到處理到「42」 。所有輸入數字皆為整數並只有一到兩位數。 作為 Classical 類別裡面的第一題,難度設置很低,但也隱性讓有研修過資工領域資料結構的程式猿們去練習或是實作 queue 類別的意思,算是個很有靈性的入門暖身題。 練習重點:queue使用、理解其概念 或 自行實作。 開始實做: 選用語言為C++,編譯環境為Code::Blocks 17.12。 我們做的點有兩點: 1. 連續輸入數字儲存,後判定輸入結束 2. 依序印出,遇到「42」停止輸出 以下開始實作: 1. 通常連續輸入後中斷,有許多實作的方法,其中while(getline(cin,a))後偵測是否為空字串是作者偏好的方法。下為簡單的實作: SPOJ的題目在沒有要求的情況下,是不需用寫防呆機制的,系統預設好的輸入默認就是在規則內,不會有預期外的輸入情況,但時間允許的話還是要有考慮一切東西進去的好習慣,所以: 已經有判定輸入情況結束程式運行( 空輸入 ),也有簡陋的防呆機制,那我們就可以進行下一步了......接著處理:要如何有效儲存輸入的數字並依照「...