(PAT Basic Level)1057 Nummer Null und Eins

Bei einer gegebenen Zeichenfolge, deren Länge 105 nicht überschreitet, müssen Sie bei dieser Frage die Seriennummern aller darin enthaltenen englischen Buchstaben addieren (die Buchstaben a–z entsprechen den Seriennummern 1–26, unabhängig von der Groß-/Kleinschreibung), um die Ganzzahl N zu erhalten , und analysieren Sie dann, wie viele Nullen und Einsen es in der binären Darstellung von N gibt. Wenn beispielsweise die Zeichenfolge PAT (Basic) gegeben ist, beträgt die Summe ihrer Buchstabenzahlen: 16+1+20+2+1+19+9+3=71, und die Binärzahl von 71 ist 1000111 , also 3 0, 4 1.

Eingabeformat:

Geben Sie in einer Zeile eine Zeichenfolge mit einer Länge von maximal 105 Zeichen ein, die durch einen Wagenrücklauf abgeschlossen wird.

Ausgabeformat:

Geben Sie die Anzahl der Nullen und die Anzahl der Einsen in einer Zeile aus, getrennt durch Leerzeichen. Hinweis: Wenn die Zeichenfolge keine Buchstaben enthält, wird davon ausgegangen, dass N nicht existiert und es keine 0 und 1 gibt.

Eingabebeispiel:

PAT (Basic)

Ausgabebeispiel:

3 4

Codelängenbegrenzung

16 KB

Zeitlimit

200 ms

Speicherlimit

64 MB

Code:

#include <bits/stdc++.h>
#include <cstring>
#include <string.h>
using namespace std;
int main(){
    string str;
    int i,j=0;
    int N=0;
    int binary[100001];//对应的二进制
    int count_0=0,count_1=0;
    getline(cin,str);
    for(i=0;i<str.length();i++){
        if(str[i]>='a'&&str[i]<='z') N+=str[i]-'a'+1;
        else if(str[i]>='A'&&str[i]<='Z') N+=str[i]-'A'+1;
    }
    //cout<<N<<endl;//检验用
    while(N){
        binary[j++]=(N%2);
        N/=2;
    }//这里输出的binary数组相比实际的输出是反的,但不影响统计0和1的个数
    /*for(i=j-1;i>=0;i--){
        cout<<binary[i];
    }*///这里的代码是对应的对的二进制数输出,检验用 
    for(i=0;i<j;i++){
        if(binary[i]==0)  count_0++;
        else if(binary[i]==1) count_1++;
    }
    cout<<count_0<<" "<<count_1;
    return 0;
}

Bei dieser Frage sollten Sie zunächst auf die Anforderungen der Frage achten: Addieren Sie den Wert von N, unabhängig von der Groß- und Kleinschreibung der englischen Buchstaben, und berechnen Sie ihn. Berechnen Sie dann die Binärzahl, die N entspricht, und speichern Sie sie im binären Array Array zur Ausgabe der Anzahl der Nullen und Einsen.

Supongo que te gusta

Origin blog.csdn.net/gaogao0305/article/details/127657803
Recomendado
Clasificación