每日一练c++题目日刊|第八期-创新互联

文章目录
  • 第一题:夏洛克侦案
    • 题目描述
    • 输入格式
    • 输出格式
    • 输入样例
    • 输出样例
    • 解题思路&C++题解

10年积累的成都网站建设、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有芜湖免费网站建设让你可以放心的选择与我们合作。第一题:夏洛克侦案 题目描述

福尔摩斯接到了一个任务,需要帮助一位富有的英国贵族解决一件谋杀案。谋杀发生在他的豪宅里,在他的书房里。现场有五个嫌疑人:

家庭保姆
英国贵族
律师
司机
清洁工

福尔摩斯需要编写一个程序来帮助他推断出谋杀犯的身份。他的程序将收集一些证据,然后根据这些证据来推断出犯罪者的身份。

输入格式

输入将包含五行,每行代表一个嫌疑人的信息。

名字是一个字符串,长度不超过 100 个字符。

后面三个字段都是布尔值,表示是否满足对应的条件。

输出格式

输出应包含一行,表示根据输入的信息推断出的犯罪者的名字。

输入样例
家庭保姆 false true false
英国贵族 true false false
律师 false false true
司机 true true false
清洁工 true true true
输出样例
清洁工
解题思路&C++题解

解题思路:

首先读入五个嫌疑人的信息。
遍历五个嫌疑人,找出第一个满足现场、动机和机会三个条件的嫌疑人。
输出这个嫌疑人的名字。

算法设计:

由于题目只要求我们找出第一个满足条件的嫌疑人,所以这道题的算法很简单。我们可以使用一个循环遍历五个嫌疑人,如果找到了第一个满足条件的嫌疑人就直接输出,否则遍历完所有的嫌疑人后输出一个空行。

时间复杂度:

由于题目只有五个嫌疑人,所以时间复杂度是 O ( 1 ) O(1) O(1) 的。

下面是 c++ 代码实现:

#include#includeusing namespace std;

struct Suspect {string name;
  bool is_at_scene;
  bool has_motive;
  bool has_opportunity;
};

// 读入嫌疑人的信息
Suspect read_suspect() {Suspect suspect;
  cin >>suspect.name >>suspect.is_at_scene >>suspect.has_motive >>suspect.has_opportunity;
  return suspect;
}

int main() {// 读入五个嫌疑人的信息
  Suspect suspects[5];
  for (int i = 0; i< 5; i++) {suspects[i] = read_suspect();
  }

  // 找出犯罪者
  string murderer;
  for (int i = 0; i< 5; i++) {if (suspects[i].is_at_scene && suspects[i].has_motive && suspects[i].has_opportunity) {  murderer = suspects[i].name;
      break;
    }
  }

  // 输出犯罪者的名字
  cout<< murderer<< endl;

  return 0;
}

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


名称栏目:每日一练c++题目日刊|第八期-创新互联
文章起源:http://cdiso.cn/article/esgee.html

其他资讯