PTA 做題反饋

2022-09-15 01:51:16 字數 1459 閱讀 9220

1.列印沙漏

題目傳送門:link

題面很簡單,就是要求列印出乙個形如沙漏的符號圖形,值得注意的是,具體是什麼符號是輸入定義的,不要先入為主認為只能是*

考慮取半個沙漏即乙個三角形來看,可以發現對於乙個三角形來說,每層的符號數構成乙個等差數列,根據數學知識,設三角形的高為h,需要的符號數為sum,則有sum = (1 + 2 * h - 1) * h / 2,由於有兩個這樣的三角形又可化簡得sum = 2 * h * h,由於重複計算,又需要減一,綜上可得sum = 2 * h * h - 1, 進行恒等變換又可解得h = sqrt( ( sum + 1 ) / 2 )

這便是唯一的難點,當然,每一層的空格數與符號數之和恒為定值,這是顯然的。

**:

#include using namespace std;

int n, h;

char c;

void solve1()

return;

}void solve2()

return;

}int main()

2. 念數字

題目傳送門 : link

這道題真的很簡單,但卻反應出了我的乙個知識漏洞:string型別陣列裡的元素每個都是 字串 型別,直接當做陣列下標會出錯。原因:會對應它的ascll 碼。

直接看**:

#include using namespace std;

string py = ;

inline void fast_read()

string str;

int main()

cout << " ";

} } else

} return 0;

}

順帶一提,這題會卡你格式,即不能有多餘空格。

3.求整數段和

題目傳送門: link

這題也比較水,值得注意的是乙個知識點,字元寬度與向左 / 右對齊。

直接用這個題給例子吧,看**可以懂。

#include using namespace std;

int a[105], n, m, sum;

int main()

for(int i = 1; i <= m-n+1; i++)

printf("\nsum = %d", sum);

return 0;

}

向左對齊:printf("%-nd", xx)

向右對齊:printf("%nd", xx)

其中n為字元寬度,xx為變數。

pta 做題警示

在刷題過程中,我發現有一些坑不得不注意一下 1.近期刷題以來,pta好像對std ios sync with stdio false 來優化cin,cout的加速器並不友好 因為我發現,有一些題目完全可以做對 不用ios 的前提下,交上去就可以ac,但是用了以後反而不行了,不知道什麼原因,還是在pt...

PTA甲級做題記錄

4.4貪心 1.a1038 貪心策略 若a b4.5二分 1.a1085 二分答案,需要用到long long 也可以直接upper bound,返回第乙個大於x的元素的指標 2.a1044 二分答案,也可直接lower bound 4.6two pointers 1.a1085 給乙個序列,問是由...

基於PTA乙級1004題的做題反思(Python)

這幾天在用pta乙級刷題,發現這裡面的題目對於python新手來說是乙個不錯的運用嘗試,因此,決定將每一天的做題反思做些記錄。1004題 讀入 n 0 名學生的姓名 學號 成績,分別輸出成績最高和成績最低學生的姓名和學號。輸入格式 每個測試輸入包含 1 個測試用例,格式為 第 1 行 正整數 n 第...