pat 乙級 1057 數零壹 20

2021-08-07 22:55:41 字數 1015 閱讀 2815

時間限制

200 ms

記憶體限制

65536 kb

**長度限制

8000 b

判題程式

standard

作者 chen, yue

給定一串長度不超過105的字串,本題要求你將其中所有英文本母的序號(字母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。

輸入格式:

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

輸出格式:

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

輸入樣例:

pat (basic)
輸出樣例:
3 4

思路:

首先定義乙個char 型別陣列 用來存 錄入資料 ;

然後,遍歷 char 陣列 ;這裡因為a的ascii 碼為65 而a是第乙個字母,字母序號為1  ,所以 需要『a』-64;

如果為小寫字母 ,需要先轉換 為大寫字母:『a』-32 然後 再減64;

然後字母序號之和;接下來就好辦了;參考求十進位制轉化二進位制的方法 求0,1 的個數即可;

**實現:

#include #include#includeusing namespace std;

char c[100005];

int main()

{ gets(c);

int len=strlen(c);

int sum=0;

for (int i=0;i提交**

PAT 乙級 1057 數零壹 20

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

乙級 PAT 1057 數零壹 20

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

PAT 乙級 1057 數零壹 20 分

題目 經驗總結 讓數字與1進行 操作,判斷結果為0還是1,分別計數即可。記 右移操作符操作完了得把結果賦值給變數,不能單獨使用。右移1位相當於除以2,左移1位相當於乘以2。移n位,相當於乘以或除以2n 記 sum sum 1 等價於 sum 1 c include include using nam...