/*
幼儿园有10个小朋友,把1 – 20中所有奇数数字的卡片分别发给这10个小朋友。
集合的时候小朋友们排成一排,组成一个由数字组成的字符串,如59731315….11917,
但是老师发现少了一个小朋友,你能帮忙找出少掉的那个小朋友吗?
1 3 5 7 9 11 13 15 17 19
// 1 7
// 3 2
// 5 2
// 7 2
// 9 2
思路:遍历字符串,统计出1 3 5 7 9的个数;
判断1 3 5 7 9 出现的个数。
*/
#include <iostream>
int findBoy(char* arr) {
int num_1 = 0;
int num_3 = 0;
int num_5 = 0;
int num_7 = 0;
int num_9 = 0;
int result = -1;
char* cur = arr;
while (*cur != '\0') {
int num = *cur - '0';
if (num == 1) {
++num_1;
}
else if (num == 3) {
++num_3;
}
else if (num == 5) {
++num_5;
}
else if (num == 7) {
++num_7;
}
else if (num == 9) {
++num_9;
}
++cur;
}
if (num_1 == 6) {//少了一个1
if (num_3 == 1) {
result = 13;
}
else if (num_5 == 1) {
result = 15;
}
else if (num_7 == 1) {
result = 17;
}
else if (num_9 == 1) {
result = 19;
}else{
result = 1;
}
}
else if (num_1 == 5) {//11
result = 11;
}
else if (num_3 == 1) {//3
result = 3;
}
else if (num_5 == 1) {
result = 5;
}
else if (num_7 == 1) {
result = 7;
}
else if (num_9 == 1) {
result = 9;
}
return result;
}
void main()
{
std::cout << findBoy("15971913151117");
std::cin.get();
}
2018届秋招提前批阿里在线编程
最新推荐文章于 2024-07-21 13:01:08 发布