PAT-B 1057 數零壹【進位制】
PAT-B 1057 數零壹
https://pintia.cn/problem-sets/994805260223102976/problems/994805270914383872
題目
給定一串長度不超過 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
分析
先計算出N,然後將N轉換成二進位制表示,最後進行統計即可。
C++程式
#include<iostream>
#include<ctype.h>
#include<string>
using namespace std;
int main()
{
string s;
getline(cin,s);
int sum=0;
for(int i=0;i<s.length();i++)
{
if(isalpha(s[i]))
{
s[i]=tolower(s[i]);
sum+=s[i]-'a'+1;
}
}
int a[32],k=0;
while(sum>0)
{
a[k++]=sum%2;
sum/=2;
}
int num0=0,num1=0;
for(int i=0;i<k;i++)
{
if(a[i]==0)
num0++;
else
num1++;
}
printf("%d %d\n",num0,num1);
return 0;
}
相關文章
- 1057 數零壹
- PAT-B 1022 D進位制的A+B【進位制】
- PAT Basic 1057. 數零壹(20)(C語言實現)C語言
- 十六進位制數轉十進位制
- C++輸入十進位制數,輸出對應二進位制數、十六進位制數C++
- 八進位制,十六進位制和浮點數
- 一看就懂二進位制、八進位制、十六進位制數轉換十進位制
- 整數轉化成八進位制、十六進位制、二進位制,以及轉回
- 進位制均值-進位制轉換+最大公約數
- 在c語言中輸出8進位制數,16進位制數C語言
- 負數補碼(16進位制轉10進位制的負數)
- 2^k進位制數
- JavaScript 二進位制數字轉換為十進位制JavaScript
- printf()將10進位制數安照輸出16進位制,8進位制輸出
- ORACLE使用函式對二進位制、十進位制、十六進位制數互相轉換Oracle函式
- 遞迴函式實現十進位制正整數轉換為二進位制,八進位制,十六進位制遞迴函式
- 進位制詳解:二進位制、八進位制和十六進位制
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- C語言中printf打出2進位制與16進位制數C語言
- javascript十進位制數字和二進位制相互轉換JavaScript
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 03:八進位制小數
- 數的進位制轉換
- 輸出二進位制數
- JavaScript 二進位制、八進位制與十六進位制JavaScript
- JavaScript 進位制轉換(2進位制、8進位制、10進位制、16進位制之間的轉換)JavaScript
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- Python 進位制互相轉換(二進位制、十進位制和十六進位制)Python
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- 如何把十進位制的數輸入用二進位制全加器,並以十進位制輸出
- Qt進位制轉換(十進位制轉十六進位制)QT
- 1474 十進位制轉m進位制+1475 m進位制轉十進位制
- [計算機基礎] 計算機進位制轉換:二進位制、八進位制、十進位制、十六進位制計算機
- C# 2進位制、8進位制、10進位制、16進位制...各種進位制間的輕鬆轉換C#
- n進位制轉十進位制
- 十進位制轉十六進位制