题目大意
阿宁每天需要从家中乘坐大巴到小山路西,然后可以选择步行或乘坐班车到公司。已知乘坐大巴到小山路西需要x分钟,从小山路西步行到公司需要y分钟,从小山路西乘坐班车到公司需要z分钟。需要求出阿宁最少需要花费多少分钟到公司。
分析
这是一个关于最小值选择的问题。我们需要找出阿宁到公司所需的最少时间。
思路
我们可以通过比较阿宁步行和乘坐班车到公司所需的时间来解决这个问题。阿宁步行到公司所需的时间为x+y,乘坐班车到公司所需的时间为x+z。我们选择这两个时间中的最小值即可。
所用到的知识点
- C++的最小值选择
- 简单的数学计算
AC代码
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int x, y, z;
cin >> x >> y >> z;
int walkTime = x + y;
int busTime = x + z;
int minTime = min(walkTime, busTime);
cout << minTime << "\n";
return 0;
}
2.崇拜
3. 方豆子
题目大意
阿宁想要用字符输出一个方形的豆子图案。给定一个正整数n,需要输出n级豆子。豆子有好豆子和坏豆子两种,好豆子用''表示,坏豆子用'.'表示。一级好豆子由全是''的方块组成,一级坏豆子由全是'.'的方块组成。x级好豆子由x-1级坏豆子和x-1级好豆子组成,x级坏豆子由x-1级好豆子和x-1级坏豆子组成。
分析
这是一个关于递归和字符串操作的问题。需要根据给定的级数生成对应的豆子图案。
思路
可以通过递归的方式来解决这个问题。首先,定义一级好豆子和一级坏豆子。然后,对于x级好豆子,生成两个x-1级坏豆子和一个x-1级好豆子,对于x级坏豆子,生成两个x-1级好豆子和一个x-1级坏豆子。可以通过字符串拼接的方式来生成豆子图案。
所用到的知识点
- C++的递归
- 字符串操作
代码
#include <iostream>
#include <vector>
#include <string>
using namespace std;
vector<string> generateBeans(int n, bool isGood) {
if (n == 1) {
return isGood ? vector<string>{"***", "***", "***"} : vector<string>{"...", "...", "..."};
}
vector<std::string> beans = generateBeans(n - 1, !isGood);
vector<string> result;
for (int i = 0; i < beans.size(); ++i) {
result.push_back(beans[i] + beans[i]);
}
for (int i = 0; i < beans.size(); ++i) {
result.push_back(beans[i] + generateBeans(n - 1, isGood)[i]);
}
return result;
}
int main() {
int n;
cin >> n;
vector<std::string> beans = generateBeans(n, true);
for (const auto& row : beans) {
cout << row << "\n";
}
return 0;
}