#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;
}