PAT Basic 1057. 數零壹(20)(C語言實現)
我的PAT系列文章更新重心已移至Github,歡迎來看PAT題解的小夥伴請到Github Pages瀏覽最新內容。此處文章目前已更新至與Github Pages同步。歡迎star我的repo。
題目
給定一串長度不超過 的字串,本題要求你將其中所有英文字母的序號(字母 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。
輸入格式:
輸入在一行中給出長度不超過 、以回車結束的字串。
輸出格式:
在一行中先後輸出 0 的個數和 1 的個數,其間以空格分隔。
輸入樣例:
PAT (Basic)
輸出樣例:
3 4
思路
逐字元讀取,邊讀邊累加。
程式碼
最新程式碼@github,歡迎交流
#include <stdio.h>
#include <ctype.h>
int main()
{
char c;
int sum = 0, count[2] = {0};
while((c = getchar()) != '\n')
if(isalpha(c))
sum += tolower(c) - 'a' + 1;
for(; sum; sum >>= 1)
count[sum & 1]++;
printf("%d %d", count[0], count[1]);
return 0;
}
相關文章
- 菜鳥記錄:c語言實現PAT甲級1010--RadixC語言
- PAT乙級1004 成績排名 (20分)(C語言版)及解析C語言
- PAT-B 1057 數零壹【進位制】
- C語言怎麼實現可變引數C語言
- PAT (Basic Level) Practice (中文)-1009-說反話 (20分)
- 掃雷--C語言實現C語言
- c語言實現階乘C語言
- PureBasic 現代 BASIC 程式語言編輯器
- 複數的四則運算(C語言實現)C語言
- PAT-B 1059 C語言競賽【模擬】C語言
- UUIDv7的20種語言實現UI
- C語言__LINE__實現原理C語言
- C語言實現檔案加密C語言加密
- c語言實現this指標效果C語言指標
- 高精度加法(C語言實現)C語言
- C語言實現TCP通訊C語言TCP
- 1013 數素數 (20分)/c++實現C++
- 排序演算法-C語言實現排序演算法C語言
- 高精度減法(C語言實現)C語言
- C語言實現推箱子游戲C語言
- C語言實現繼承多型C語言繼承多型
- C語言實現桌面貪吃蛇C語言
- 2-2 學生成績連結串列處理 (20分)——C語言實現C語言
- 【PAT乙級、C++】1024 科學計數法 (20分)C++
- PureBasic for Mac(BASIC語言編輯器)MacC語言
- C語言,實現數字譜到簡譜的轉換(二)C語言
- C 語言實現整數快速模除(modulo)和地板除(floordiv)
- Object-C語言Block的實現方式ObjectC語言BloC
- C 語言實現泛型 swap 函式泛型函式
- PID演算法的C語言實現演算法C語言
- C語言如何實現繼承及容器C語言繼承
- C語言實現矩陣螺旋輸出C語言矩陣
- PAT甲級1126~1130|C++實現C++
- C語言實現的一個簡單的猜數小遊戲C語言遊戲
- 力扣896. 單調數列-C語言實現-簡單題力扣C語言
- C++20語言核心特性的變化C++
- c語言實現貓吃老鼠的問題C語言
- C語言回撥日誌庫的實現C語言
- 探秘掃雷遊戲的C語言實現遊戲C語言