輸入描述:
輸入有多組資料,每組資料報含乙個正整數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...