1057. 数零壹 案例不通过


#include <iostream>
#include <string>
#include <cctype>
using std::cin;
using std::cout;
using std::endl;
using std::string;

int main()
{
    string str;
    getline(cin, str);
    int array[10000];
    int sum = 0;
    int trans[10000];

    for (int i = 0; i < str.length(); i++)
    {
        if (str[i] >= 'a' && isalpha(str[i]))
        {
            array[i] = str[i] - 'a' + 1;
            sum += array[i];
        }
        if (str[i] >= 'A' && str[i] < 'a' && isalpha(str[i]))
        {
            array[i] = str[i] - 'A' + 1;
            sum += array[i];
        }
    }



    int cnt = 0;
    while (sum / 2 != 0)
    {
        trans[cnt] = sum % 2;
        sum = sum / 2;
        cnt++;
    }

    trans[cnt] = sum % 2;//区别在这里

    int t0 = 0;
    int t1 = 0;
    for (int i = cnt - 1; i >= 0; i--)
    {
        if (trans[i] == 0)
        {
            t0++;
        }
        else
        {
            t1++;
        }
    }
    cout << t0 << " " << t1;
}


案例2通过


#include <iostream>
#include <string>
#include <cctype>
using std::cin;
using std::cout;
using std::endl;
using std::string;

int main()
{
    string str;
    getline(cin, str);
    int array[10000];
    int sum = 0;
    int trans[10000];

    for (int i = 0; i < str.length(); i++)
    {
        if (str[i] >= 'a' && isalpha(str[i]))
        {
            array[i] = str[i] - 'a' + 1;
            sum += array[i];
        }
        if (str[i] >= 'A' && str[i] < 'a' && isalpha(str[i]))
        {
            array[i] = str[i] - 'A' + 1;
            sum += array[i];
        }
    }



    int cnt = 0;
    while (sum / 2 != 0)
    {
        trans[cnt] = sum % 2;
        sum = sum / 2;
        cnt++;
    }

    trans[cnt++] = sum % 2;//区别在这里

    int t0 = 0;
    int t1 = 0;
    for (int i = cnt - 1; i >= 0; i--)
    {
        if (trans[i] == 0)
        {
            t0++;
        }
        else
        {
            t1++;
        }
    }
    cout << t0 << " " << t1;
}

只有案例2不通过,其他都通过

 #include <stdio.h>
int main()
{
    int N, D, K;
    int empty = 0, pempty = 0, lower;
    float e, E;

    scanf("%d %f %d", &N, &e, &D);
    for(int i = 0; i < N; i++)
    {
        lower = 0;
        scanf("%d", &K);
        for(int j = 0; j < K; j++)
        {
            scanf("%f", &E);
            if(E < e)   lower++;
        }
        if(lower > K / 2 && K > D)  empty++;
        else if(lower > K / 2)      pempty++;   
    }
    printf("%.1f%% %.1f%%", 100.0 * pempty / N, 100.0 * empty / N);

    return 0;
}