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;
}
相關文章
- PAT-B 1057 數零壹【進位制】
- C語言怎麼實現可變引數C語言
- C語言預設引數值的實現C語言
- 用C語言實現八數碼問題C語言
- GO語言實現區塊鏈Part1 Basic PrototypeGo區塊鏈
- 菜鳥記錄:c語言實現PAT甲級1010--RadixC語言
- 特性(C# 和 Visual Basic) BASIC 快速建模特性的程式語言C#
- 複數的四則運算(C語言實現)C語言
- ORACLE 數字演算法的C語言實現Oracle演算法C語言
- PureBasic 現代 BASIC 程式語言編輯器
- 掃雷--C語言實現C語言
- C語言實現DES加密C語言加密
- c語言實現階乘C語言
- Yuv420轉Jpeg(C語言實現)C語言
- PAT-B 1059 C語言競賽【模擬】C語言
- 兒童程式語言small basic
- C 語言隨機數生成器的實現分析隨機
- C語言實現TCP通訊C語言TCP
- 高精度加法(C語言實現)C語言
- c語言實現this指標效果C語言指標
- C語言實現順序表C語言
- C語言實現連結串列C語言
- 漢諾塔(hanoi) C語言實現C語言
- RTree原始碼——C語言實現原始碼C語言
- C語言實現出入棧操作C語言
- C語言實現檔案加密C語言加密
- 利用棧實現佇列(C語言實現)佇列C語言
- PAT乙級1004 成績排名 (20分)(C語言版)及解析C語言
- C語言實驗——素數 (sdut oj)C語言
- C語言實現推箱子游戲C語言
- C語言__LINE__實現原理C語言
- 排序演算法-C語言實現排序演算法C語言
- C語言實現桌面貪吃蛇C語言
- 高精度減法(C語言實現)C語言
- C語言實現繼承多型C語言繼承多型
- C語言實現萬年曆程式C語言
- C語言實現A*演算法薦C語言演算法
- c語言實現linux抓包C語言Linux