從零單排PAT1013,1014

2021-06-22 04:52:26 字數 2638 閱讀 2710

1013的題目要求是列印素數表,而1014是列印時間,看似沒什麼關聯,其實都是一種程式內部的變數的對映。關鍵是正確對應。

1013

令pi表示第i個素數。現任給兩個正整數m <= n <= 104,請輸出pm到pn的所有素數。

輸入格式:

輸入在一行中給出m和n,其間以空格分隔。

輸出格式:

輸出從pm到pn的所有素數,每10個數字佔1行,其間以空格分隔,但行末不得有多餘空格。

輸入樣例:

5 27
輸出樣例:
11 13 17 19 23 29 31 37 41 43

47 53 59 61 67 71 73 79 83 89

97 101 103

**如下:

#include using namespace std;

bool isprimenumber(int num) //判斷是否為質數**,如果返回true表示是質數,返回false是合數

else

return true ; //判斷如果都不能被整除,則說明是質數 }}

int main()

} }system("pause");

return 0;

}

這道題目的難點在於整數的編號對應素數的編號,比如2,3對應素數的編號是1,2,最最快捷簡單的方法是列印素數表(這種判別素數的方法在以後的演算法心得中會寫出),但是用素數為判斷元素去列印素數表不能直接確定素數的編號。所以我採用了直接判斷素數的方式,對於1和2直接判斷,而對於大於2的數,直接以遍歷的方式進行整除,這裡的迴圈邊界條件可以進一步優化,不用直接取平方的形式,而用相乘的形式優化(只要判斷所有小於這個數的平方能否被該數整除即可,當然1除外)。最後就是注意輸出形式,第乙個不輸出空格,最後乙個換行即可。

1014

大偵探福爾摩斯接到一張奇怪的字條:「我們約會吧! 3485djdkxh4hhge 2984akdfkkkkggedsb s&hgsfdk d&hyscvnm」。大偵探很快就明白了,字條上奇怪的亂碼實際上就是約會的時間「星期四 14:04」,因為前面兩字串中第1對相同的大寫英文本母(大小寫有區分)是第4個字母'd',代表星期四;第2對相同的字元是'e',那是第5個英文本母,代表一天裡的第14個鐘頭(於是一天的0點到23點由數字0到9、以及大寫字母a到n表示);後面兩字串第1對相同的英文本母's'出現在第4個位置(從0開始計數)上,代表第4分鐘。現給定兩對字串,請幫助福爾摩斯解碼得到約會的時間。

輸入格式:

輸入在4行中分別給出4個非空、不包含空格、且長度不超過60的字串。

輸出格式:

在一行中輸出約會的時間,格式為「day hh:mm」,其中「day」是某星期的3字元縮寫,即mon表示星期一,tue表示星期二,wed表示星期三,thu表示星期四,fri表示星期五,sat表示星期六,sun表示星期日。題目輸入保證每個測試存在唯一解。

輸入樣例:

3485djdkxh4hhge 

2984akdfkkkkggedsb

s&hgsfdk

d&hyscvnm

輸出樣例:
thu 14:04
**如下

#include #include using namespace std;

char getdata(string &a,string &b,int *p) //傳入兩個字串,,傳入乙個時間返回乙個字元

} return 0;

}char gethour(string a,string b,int p) //傳入兩個字串,傳入乙個時間返回乙個字元

} return 0;

}int getminute(string a,string b) //傳入兩個字串,得到實際的分鐘數,並返回

} return 0;

}int main()

char temp = getdata(a[0],a[1],&count);

switch(temp) //尋找日期

char temp1 = gethour(a[0],a[1],count);

timeminute = getminute(a[2],a[3]);

cout << data << " " ;

if(temp1<='9'&&temp1>='0')

cout << '0' << temp1 - '0' ;

else

cout << temp1 - 'a' + 10 ;

if(timeminute < 10)

cout << ":0" << timeminute <

得出第幾分鐘比較簡單,但是得出星期幾和小時,需要有以下幾個邏輯:1.一定從字串中先得到星期幾,然後才能得出幾點;2.星期幾必須是大寫字母'a'到'g';3.幾點必須是大寫字母'a'到'n'或者是『0』和『9』;當明白知道這三個邏輯的時候,程式就引刃而解了。但是我還是沒有一下做正確,有兩點原因:沒有區別星期和小時的順序;沒有正確確定星期的範圍。我這裡用了乙個指標用於記錄星期判斷的位置,下次遍歷小時,用這個位置之後開始遍歷。

從零單排PAT1009,1011,1012

這次將1009,1011,1012的題目貼出來,都是水題 1009 給定一句英語,要求你編寫程式,將句中所有單詞的順序顛倒輸出。輸入格式 測試輸入包含乙個測試用例,在一行內給出總長度不超過80的字串。字串由若干單詞和若干空格組成,其中單詞是由英文本母 大小寫有區分 組成的字串,單詞之間用1個空格分開...

從零單排PAT1006 換個格式輸出整數

題目簡單,就簡單的三個邏輯,只需要注意個位是從1開始,而不是從0開始輸出 題目要求 讓我們用字母b來表示 百 字母s表示 十 用 12.n 來表示個位數字n 10 換個格式來輸出任乙個不超過3位的正整數。例如234應該被輸出為bbsss1234,因為它有2個 百 3個 十 以及個位的4。輸入格式 每...

H5從零單排01

鍵盤指法 2020年的4月正式開始了自己的前端程式設計之路,世間雜亂紛飛,江湖的人來來去去,大家都馬不停蹄的奔波,忙著活,忙著死。終於找到乙份落腳處,較體面的收入,相對有趣不死板的工作 web前端 企業裡多用的是框架,vue,react,ant desire,element ui。多是講求效率。但化...