PAT乙級 7 一的個數 桌球筐

2021-09-27 23:57:47 字數 1881 閱讀 4196

輸入描述:

輸入有多組資料,每組資料報含乙個正整數n (1≤n≤2147483647)和乙個正整數r (2≤r≤16)。其中n為十進位制整數,r為目標進製。

對應每組輸入,輸出整數n轉換成r進製之後,其中包含多少個「1」。
1 2

123 16

1

0

2147483647 是int 的最大值,可以用long來接收.

關於進製的轉換

中有.然後判斷有多少個1就行了

#include #include using namespace std;

int main()

else

}while (!sta.empty())

sta.pop();

} printf("%d\n", num);

num = 0;

} return 0;

}

輸入有多組資料。每組資料報含兩個字串a、b,代表a盒與b盒中的桌球,每個桌球用乙個大寫字母表示,即相同型別的桌球為相同的大寫字母。字串長度不大於10000。

每一組輸入對應一行輸出:如果b盒中所有球的型別在a中都有,並且每種球的數量都不大於a,則輸出「yes」;否則輸出「no」。

abcdfye cde

abcdgeas cdecde

yes

no

大坑沒有,小坑不少.

簡單實現:

先判斷是否滿足 a中包含b, 也就是 abc ab abc as. 這兩類情況.

然後判斷是否滿足 a 與b 中的同一型號 是否滿足 a裡的數量大於b裡的數量. 如 abc aa , abcabc abc

優雅的實現:

建立乙個map,將a筐存放到 aa裡,b存放到bb裡

然後比較,如果b中某個對應位置的數大於a,輸出no

優雅的實現:

思路: map的應用。

#include #include #include using namespace std;

int main()

for (int i = 0; i < b.size(); i++)

for (int i = 'a'; i <= 'z'; i++)

if (i == 'z')

}}}

簡單實現:

#include #include using namespace std;

int main()

int temp = 0;

//for (int i = 0; i < s1.length(); i++)

// for (int i = 0; i < s1.length(); i++)

for (int i = 0; i < 27; i++)

}for (int i = 0; i < 27; i++)

if (falg)

//a包含b 但不知道數量

for (int i = 0; i < s2.length(); i++)

for (int i = 0; i < s1.length(); i++)

for (int i = 0; i < 27; i++)

}} for (int i = 0; i < 27; i++)

if (falg)

cout << "yes" << endl;

else

cout << "no" << endl;

falg = true;

//歸零

} return 0;

}

一些有關PAT乙級考試的內容

1.判斷素數 bool isprime int n 2.解決執行超時問題 1 把cin換為scanf 把cout換為printf 2 在輸入之前加上std ios sync with stdio false 語句 方法 1 和方法 2 不能同時使用。3.大寫字母轉化為小寫字母 string func...

關於PAT乙級一些題目要點的重新整理(二)

1028 題目及原解答 1.注意若組數為0時的輸出 include include include includeusing namespace std struct person bool cmp person a,person b int main sort v.begin v.end cmp ...

關於PAT乙級一些題目要點的重新整理(三)

1050 題目及原解答 1.建立座標系,將幾個關鍵位置的座標寫出來,方便思考 2.注意不要產生資料的位置重疊,否則會有資料被覆蓋 3.m n與level的確定 求出n的開方數,向下取整。從此數開始,向下判斷是否可被n整除,若可以則此數為n,得到n後便可求m。level為m除以2向上取整 includ...