yuAriellexi 2018-09-02 08:31 采纳率: 100%
浏览 518
已结题

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不通过,其他都通过

  • 写回答

1条回答 默认 最新

  • devmiao 2018-09-02 09:57
    关注
     #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;
    }
    
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b