好一段時間沒繼續肝題了,也打破了自己想每天刷題的習慣,大一生活真的是忙的我好累啊,基本每天都是非常充實的狀態,留給自己的時間不是很多了。一個三下鄉各種活動也是搞得我夠嗆,加上最近學校邀請拍攝宣傳片也浪費我不少時間,大一也即將走到頭了,很快就要高考了,這一年恍恍惚惚走的真的是很快很快,誰能想到現在我會這么生活呢?
大二也開始收收心了,很多活動也不打算去參加了,連班委我也不打算繼續競選了,在大二好好專攻自己的學術,准備開始考研,靜下心來提升自我,嗯,加油。
最近要開始自己的補題計划了,還是一樣,想把PTA的題先全補完,然后再去HDU和VJ
------------------------------------------------L1-057----------------------------------------------------------
PTA使我精神煥發
以上是湖北經濟學院同學的大作。本題就請你用漢語拼音輸出這句話。
輸入格式:
本題沒有輸入。
輸出格式:
在一行中按照樣例輸出,以驚嘆號結尾。
輸入樣例:
無
輸出樣例:
PTA shi3 wo3 jing1 shen2 huan4 fa1 !
------------------------------------------------L1-057----------------------------------------------------------
注解:水題,秒過
#include<stdio.h> int main() { printf("PTA shi3 wo3 jing1 shen2 huan4 fa1 !\n"); return 0; }
------------------------------------------------L1-058----------------------------------------------------------
6翻了
“666”是一種網絡用語,大概是表示某人很厲害、我們很佩服的意思。最近又衍生出另一個數字“9”,意思是“6翻了”,實在太厲害的意思。如果你以為這就是厲害的最高境界,那就錯啦 —— 目前的最高境界是數字“27”,因為這是 3 個 “9”!
本題就請你編寫程序,將那些過時的、只會用一連串“6666……6”表達仰慕的句子,翻譯成最新的高級表達。
輸入格式:
輸入在一行中給出一句話,即一個非空字符串,由不超過 1000 個英文字母、數字和空格組成,以回車結束。
輸出格式:
從左到右掃描輸入的句子:如果句子中有超過 3 個連續的 6,則將這串連續的 6 替換成 9;但如果有超過 9 個連續的 6,則將這串連續的 6 替換成 27。其他內容不受影響,原樣輸出。
輸入樣例:
it is so 666 really 6666 what else can I say 6666666666
輸出樣例:
it is so 666 really 9 what else can I say 27
------------------------------------------------L1-058----------------------------------------------------------
注解:這道題有點小難度,需要對不同數量的6進行處理,分類處理,需要用getline讀取整行,難度也不是特別大,小心一點就好。
#include<stdio.h> #include<string.h> #include<iostream> using namespace std; char temp[1001]; char ans[1001]; int count6 = 0,count = 0; void six() { if(count6>3 && count6<=9) { ans[count] = '9'; count++; count6 = 0; } else if(count6>9) { ans[count] = '2'; ans[count+1] = '7'; count = count + 2; count6 = 0; } else if(count6>0 && count6<=3) { for(int u = 0;u<count6;u++) { ans[count] = '6'; count++; } count6 = 0; } } int main() { cin.getline(temp,1001); for(int i = 0;i<strlen(temp);i++) { if(temp[i] == '6') count6++; else { six(); ans[count] = temp[i]; count++; } } six(); ans[count] = '\0'; puts(ans); return 0; }
------------------------------------------------L1-059----------------------------------------------------------
敲笨鍾
微博上有個自稱“大笨鍾V”的家伙,每天敲鍾催促碼農們愛惜身體早點睡覺。為了增加敲鍾的趣味性,還會糟改幾句古詩詞。其糟改的方法為:去網上搜尋壓“ong”韻的古詩詞,把句尾的三個字換成“敲笨鍾”。例如唐代詩人李賀有名句曰:“尋章摘句老雕蟲,曉月當簾掛玉弓”,其中“蟲”(chong)和“弓”(gong)都壓了“ong”韻。於是這句詩就被糟改為“尋章摘句老雕蟲,曉月當簾敲笨鍾”。
現在給你一大堆古詩詞句,要求你寫個程序自動將壓“ong”韻的句子糟改成“敲笨鍾”。
輸入格式:
輸入首先在第一行給出一個不超過 20 的正整數 N。隨后 N 行,每行用漢語拼音給出一句古詩詞,分上下兩半句,用逗號 ,
分隔,句號 .
結尾。相鄰兩字的拼音之間用一個空格分隔。題目保證每個字的拼音不超過 6 個字符,每行字符的總長度不超過 100,並且下半句詩至少有 3 個字。
輸出格式:
對每一行詩句,判斷其是否壓“ong”韻。即上下兩句末尾的字都是“ong”結尾。如果是壓此韻的,就按題面方法糟改之后輸出,輸出格式同輸入;否則輸出 Skipped
,即跳過此句。
輸入樣例:
5 xun zhang zhai ju lao diao chong, xiao yue dang lian gua yu gong. tian sheng wo cai bi you yong, qian jin san jin huan fu lai. xue zhui rou zhi leng wei rong, an xiao chen jing shu wei long. zuo ye xing chen zuo ye feng, hua lou xi pan gui tang dong. ren xian gui hua luo, ye jing chun shan kong.
輸出樣例:
xun zhang zhai ju lao diao chong, xiao yue dang lian qiao ben zhong.
Skipped
xue zhui rou zhi leng wei rong, an xiao chen jing qiao ben zhong.
Skipped
Skipped
------------------------------------------------L1-059----------------------------------------------------------
注解:這題我印象記得我當時寫的時候是用char一個個判的,所以bug比較多,這次重寫用了個string流塊存儲法,之前有看到有大佬用這種寫法來存儲每個單詞,是一個不錯的方法。
難點:對string類的靈活應用,還是推薦對於string使用cin和cout比較保險,不然可能用scanf和printf容易gg
注解:temp_s.find("ong,") != -1,即使用find函數,能夠得到查找到的下標,但是如果找不到的話就會返回-1
temp_s.back() == '.',即使用back函數,能夠得到string的最后一位是什么,很方便的一個函數,看來得多多練習對string類的使用。
貼上AC代碼:
#include<stdio.h> #include<string.h> #include<string> #include<iostream> #define MAX 99 using namespace std; int times; int main() { scanf("%d",×); int count,mark; for(int i = 0;i<times;i++) { string s[MAX]; count = mark = 0; string temp_s; while(cin>>temp_s) { if(temp_s.back() == ',') if(temp_s.find("ong,") != -1) mark++; if(temp_s.back() == '.') { if(temp_s.find("ong.") != -1) mark++; s[count++] = temp_s; break; } else s[count++] = temp_s; } if(mark == 2) { for(int u = 0;u<count-3;u++) printf("%s ",s[u].c_str()); printf("qiao ben zhong.\n"); } else printf("Skipped\n"); } return 0; }
------------------------------------------------L1-060----------------------------------------------------------
心理陰影面積
這是一幅心理陰影面積圖。我們都以為自己可以勻速前進(圖中藍色直線),而拖延症晚期的我們往往執行的是最后時刻的瘋狂趕工(圖中的紅色折線)。由紅、藍線圍出的面積,就是我們在做作業時的心理陰影面積。
現給出紅色拐點的坐標 (,要求你算出這個心理陰影面積。
輸入格式:
輸入在一行中給出 2 個不超過 100 的正整數 x 和 y,並且保證有 x>y。這里假設橫、縱坐標的最大值(即截止日和最終完成度)都是 100。
輸出格式:
在一行中輸出心理陰影面積。
友情提醒:三角形的面積 = 底邊長 x 高 / 2;矩形面積 = 底邊長 x 高。嫑想得太復雜,這是一道 5 分考減法的題……
輸入樣例:
90 10
輸出樣例:
4000
------------------------------------------------L1-060----------------------------------------------------------
注解:神仙水題
#include<stdio.h> int main() { int x,y,t; scanf("%d %d",&x,&y); t=5000-(100-x)*y-x*y/2-(100-x)*(100-y)/2; printf("%d",t); return 0; }
------------------------------------------------L1-061----------------------------------------------------------
新胖子公式
根據錢江晚報官方微博的報導,最新的肥胖計算方法為:體重(kg) / 身高(m) 的平方。如果超過 25,你就是胖子。於是本題就請你編寫程序自動判斷一個人到底算不算胖子。
輸入格式:
輸入在一行中給出兩個正數,依次為一個人的體重(以 kg 為單位)和身高(以 m 為單位),其間以空格分隔。其中體重不超過 1000 kg,身高不超過 3.0 m。
輸出格式:
首先輸出將該人的體重和身高代入肥胖公式的計算結果,保留小數點后 1 位。如果這個數值大於 25,就在第二行輸出 PANG
,否則輸出 Hai Xing
。
輸入樣例 1:
100.1 1.74
輸出樣例 1:
33.1 PANG
輸入樣例 2:
65 1.70
輸出樣例 2:
22.5 Hai Xing
------------------------------------------------L1-061----------------------------------------------------------
注解:難度不大,水題,if判斷就好
#include<stdio.h> int main() { double wight, tall; scanf("%lf %lf", &wight, &tall); printf("%.1f", wight / (tall * tall)); printf("\n"); if ((int)(wight / (tall * tall)) > 25) printf("PANG"); else printf("Hai Xing"); printf("\n"); return 0; }
------------------------------------------------L1-062----------------------------------------------------------
幸運彩票
彩票的號碼有 6 位數字,若一張彩票的前 3 位上的數之和等於后 3 位上的數之和,則稱這張彩票是幸運的。本題就請你判斷給定的彩票是不是幸運的。
輸入格式:
輸入在第一行中給出一個正整數 N(≤ 100)。隨后 N 行,每行給出一張彩票的 6 位數字。
輸出格式:
對每張彩票,如果它是幸運的,就在一行中輸出 You are lucky!
;否則輸出 Wish you good luck.
。
輸入樣例:
2 233008 123456
輸出樣例:
You are lucky!
Wish you good luck.
------------------------------------------------L1-062----------------------------------------------------------
注解:這題很搞笑,百度了一下,有兩個題解,真的是多此一舉。一個題解是把每一位給切出來,還有一個很接近我的答案了,卻要去減個‘0’,其實沒有必要,直接相加就好了,因為他們全都是基於加了‘0’上的運算,相當於同一起點的,直接加就可以了。
#include<stdio.h> int times; int main() { scanf("%d",×); while(times--) { getchar(); char temp[6]; scanf("%s",&temp); if((temp[0]+temp[1]+temp[2]) == (temp[3]+temp[4]+temp[5])) printf("You are lucky!\n"); else printf("Wish you good luck.\n"); } return 0; }
------------------------------------------------L1-063----------------------------------------------------------
吃魚還是吃肉
國家給出了 8 歲男寶寶的標准身高為 130 厘米、標准體重為 27 公斤;8 歲女寶寶的標准身高為 129 厘米、標准體重為 25 公斤。
現在你要根據小寶寶的身高體重,給出補充營養的建議。
輸入格式:
輸入在第一行給出一個不超過 10 的正整數 N,隨后 N 行,每行給出一位寶寶的身體數據:
性別 身高 體重
其中性別
是 1 表示男生,0 表示女生。身高
和體重
都是不超過 200 的正整數。
輸出格式:
對於每一位寶寶,在一行中給出你的建議:
- 如果太矮了,輸出:
duo chi yu!
(多吃魚); - 如果太瘦了,輸出:
duo chi rou!
(多吃肉); - 如果正標准,輸出:
wan mei!
(完美); - 如果太高了,輸出:
ni li hai!
(你厲害); - 如果太胖了,輸出:
shao chi rou!
(少吃肉)。
先評價身高,再評價體重。兩句話之間要有 1 個空格。
輸入樣例:
4 0 130 23 1 129 27 1 130 30 0 128 27
輸出樣例:
ni li hai! duo chi rou! duo chi yu! wan mei! wan mei! shao chi rou! duo chi yu! shao chi rou!
------------------------------------------------L1-063----------------------------------------------------------
注解:神仙水題,主要是多判斷幾個東西就好了。
#include<stdio.h> int main() { int cases; scanf("%d", &cases); getchar(); while (cases--) { int sex, tall, wight; scanf("%d %d %d", &sex, &tall, &wight); int flag = 0; if (sex == 0) flag = 1; if (tall < 130 - flag) printf("duo chi yu! "); if (tall == 130 - flag) printf("wan mei! "); if (tall > 130 - flag) printf("ni li hai! "); if (wight < 27 - flag * 2) printf("duo chi rou!\n"); if (wight == 27 - flag * 2) printf("wan mei!\n"); if (wight > 27 - flag * 2) printf("shao chi rou!\n"); } return 0; }
注:如果有更好的解法,真心希望您能夠評論留言貼上您的代碼呢~互相幫助互相鼓勵才能成長鴨~