演算法學習之路|數零壹
給定一串長度不超過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
解題思路:
先求出有幾個字母
在求出數的二進位制
計算0,1的個數。
#include<iostream>
using namespace std;
int main(){
char ch;
int sum=0;
while((ch=getchar())!=`
`){
if(ch>=`a`&&ch<=`z`)
sum+=ch-`a`+1;
else if(ch>=`A`&&ch<=`Z`)
sum+=ch-`A`+1;
}
int one=0,zero=0;
while(sum>0){
if(sum%2==1)
one++;
else if(sum%2==0)
zero++;
sum/=2;
}
cout<<zero<<" "<<one;
}
相關文章
- 演算法學習之路|朋友數演算法
- 演算法學習之路|科學計數法演算法
- 演算法學習之路|最簡分數演算法
- 演算法學習之路|愛丁頓數演算法
- 演算法學習之路|個位數統計演算法
- 演算法學習之路|寫出這個數(20)演算法
- 演算法學習之路|划拳演算法
- 演算法學習之路|A除以B演算法
- 演算法學習之路|列印排名演算法
- 演算法學習之路|方格分割演算法
- 演算法學習之路|SpellItRight演算法
- 演算法學習之路|歐幾里得遊戲演算法遊戲
- 演算法學習之路|月餅演算法
- 演算法學習之路|PATRanking演算法
- 演算法學習之路|列印沙漏演算法
- 演算法學習之路|快速排序演算法排序
- 演算法學習之路|結繩演算法
- 演算法學習之路|開學寄語演算法
- 演算法學習之路|說反話演算法
- 演算法學習之路|幼兒園買玩具演算法
- 演算法學習之路|小賭怡情演算法
- 演算法學習之路|影像過濾演算法
- 演算法學習之路|日期問題演算法
- 演算法學習之路|賣個萌演算法
- 演算法學習之路|螺旋矩陣演算法矩陣
- 演算法學習之路|選擇題演算法
- 演算法學習之路|字元統計演算法字元
- 1057 數零壹
- 演算法學習之路|PlayOnWords(尤拉道路+dfs)演算法
- 演算法學習之路|舊鍵盤打字演算法
- 演算法學習之路|檢驗身份證演算法
- 演算法學習之路|最小生成樹——prime演算法演算法
- 強化學習之路一 QLearning 演算法強化學習演算法
- 演算法學習之路|狀態壓縮dp演算法
- 演算法學習之路|棋盤問題(博弈)演算法
- 演算法學習之路|進位制轉換演算法
- 演算法學習之路|宇宙無敵加法器演算法
- 演算法學習之路|四平方和演算法