PAT B1057 數零壹(20 分)

2021-08-21 13:02:43 字數 726 閱讀 2185

1057 數零壹(20 分)

給定一串長度不超過 10​5​​ 的字串,本題要求你將其中所有英文本母的序號(字母 a-z 對應序號 1-26,不分大小寫)相加,得到整數 n,然後再分析一下 n 的二進位制表示中有多少 0、多少 1。例如給定字串pat (basic),其字母序號之和為:16+1+20+2+1+19+9+3=71,而 71 的二進位制是 1000111,即有 3 個 0、4 個 1。

輸入在一行中給出長度不超過 10​5​​、以回車結束的字串。

在一行中先後輸出 0 的個數和 1 的個數,其間以空格分隔。

pat (basic)
3 4
分析:

1.所給輸入可能有空格,要用getline()輸入

2.得到所有字母序號的和後,使用右移(>>)和位與(&)運算子依次取和的二進位制的高位,直到取到第乙個1,開始統計0和1的數量

**:

#include #include using namespace std;

int main()

int flag = false;//還沒有取到第乙個1

for(i = sizeof(int) * 8 - 1; i >= 0; i--)

cout << zero << " " << one << endl;

return 0;

}

1057 數零壹(20 分)

1057 數零壹 20 分 給定一串長度不超過 10 5 的字串,本題要求你將其中所有英文本母的序號 字母 a z 對應序號 1 26,不分大小寫 相加,得到整數 n,然後再分析一下 n 的二進位制表示中有多少 0 多少 1。例如給定字串pat basic 其字母序號之和為 16 1 20 2 1 ...

1057 數零壹(20 分)

累加sum的時候記得加一 因為字母a為下標從一開始。1057 數零壹 20 分 給定一串長度不超過 10 5 的字串,本題要求你將其中所有英文本母的序號 字母 a z 對應序號 1 26,不分大小寫 相加,得到整數 n,然後再分析一下 n 的二進位制表示中有多少 0 多少 1。例如給定字串pat b...

1057 數零壹 (20 分)

1057 數零壹 20 分 給定一串長度不超過 10 5 的字串,本題要求你將其中所有英文本母的序號 字母 a z 對應序號 1 26,不分大小寫 相加,得到整數 n,然後再分析一下 n 的二進位制表示中有多少 0 多少 1。例如給定字串pat basic 其字母序號之和為 16 1 20 2 1 ...