diff --git a/第一讲 变量、输入输出、表达式与顺序语句/t617.cpp b/第一讲 变量、输入输出、表达式与顺序语句/t617.cpp new file mode 100644 index 0000000..1882cd3 --- /dev/null +++ b/第一讲 变量、输入输出、表达式与顺序语句/t617.cpp @@ -0,0 +1,25 @@ +// 两辆汽车在同一地点,同时,沿同一方向前进。 + +// 一辆车的速度为 60 km / +// h +// ,另一辆车的速度为 90 km / +// h +// 。 + +// 显然,快车与慢车的距离会不断拉开,每过一个小时(60 +// 分钟),两车的距离就拉开 30 公里。 + +// 现在,告诉你两车之间的距离为 L +// 公里,请你求出两车已经行驶了多长时间? + +#include + +using namespace std; + +int main() +{ + int L; + cin >> L; + cout << (L << 1) << " minutos" << endl; + return 0; +} diff --git a/第一讲 变量、输入输出、表达式与顺序语句/t618.cpp b/第一讲 变量、输入输出、表达式与顺序语句/t618.cpp new file mode 100644 index 0000000..460aaf1 --- /dev/null +++ b/第一讲 变量、输入输出、表达式与顺序语句/t618.cpp @@ -0,0 +1,20 @@ +// 一辆汽车每行驶 12 公里需要消耗 1 升汽油,现在告诉你该汽车的行驶速度 S +// (km / +// h +// )和行驶时间 T +// (h +// ),请你计算该车在行驶过程中一共消耗了多少升汽油。 +#include +#include + +using namespace std; + +int main() +{ + long long T, S; + cin >> T >> S; + // cout << (T * S) / 12.0 << endl; + // printf("%.3lf", (double)T * S / 12); + cout << fixed << setprecision(3) << T * S / 12.0 << endl; + return 0; +} diff --git a/第一讲 变量、输入输出、表达式与顺序语句/t658.cpp b/第一讲 变量、输入输出、表达式与顺序语句/t658.cpp new file mode 100644 index 0000000..dd8041f --- /dev/null +++ b/第一讲 变量、输入输出、表达式与顺序语句/t658.cpp @@ -0,0 +1,50 @@ +// 读取一个带有两个小数位的浮点数,这代表货币价值。 + +// 在此之后,将该值分解为多种钞票与硬币的和,每种面值的钞票和硬币使用数量不限,要求使用的钞票和硬币的总数量尽可能少。 + +// 钞票的面值是 100, +// 50, 20, 10, 5, 2 +// 。 + +// 硬币的面值是 1, +// 0.50, 0.25, 0.10, 0.05 和 0.01 +// 。 + +// 经过实验证明:在本题中,优先使用面额大的钞票和硬币可以保证所用的钞票和硬币总数量最少。 +#include +#include + +using namespace std; + +int main() +{ + double n; + cin >> n; + + int m = (int)(n * 100); // 保留两位小数 + + double a[12] = {10000, 5000, 2000, 1000, 500, 200, + 100, 50, 25, 10, 5, 1}; + int ans[12] = {0}; + + for (int i = 0; i < 12; i++) + { + int cnt = 0; + while (m >= a[i]) + { + m -= a[i]; // 从大到小减 + cnt++; + } + ans[i] = cnt; // 记录每种面值的钞票和硬币使用数量 + } + + puts("NOTAS:"); + for (int i = 0; i < 6; i++) + printf("%d nota(s) de R$ %.2lf\n", ans[i], a[i] / 100); + + puts("MOEDAS:"); + for (int i = 6; i < 12; i++) + printf("%d moeda(s) de R$ %.2lf\n", ans[i], a[i] / 100); + + return 0; +} \ No newline at end of file diff --git a/第一讲 变量、输入输出、表达式与顺序语句/t658_2.cpp b/第一讲 变量、输入输出、表达式与顺序语句/t658_2.cpp new file mode 100644 index 0000000..a15840c --- /dev/null +++ b/第一讲 变量、输入输出、表达式与顺序语句/t658_2.cpp @@ -0,0 +1,40 @@ +// 读取一个带有两个小数位的浮点数,这代表货币价值。 + +// 在此之后,将该值分解为多种钞票与硬币的和,每种面值的钞票和硬币使用数量不限,要求使用的钞票和硬币的总数量尽可能少。 + +// 钞票的面值是 100, +// 50, 20, 10, 5, 2 +// 。 + +// 硬币的面值是 1, +// 0.50, 0.25, 0.10, 0.05 和 0.01 +// 。 + +// 经过实验证明:在本题中,优先使用面额大的钞票和硬币可以保证所用的钞票和硬币总数量最少。 +#include +#include +using namespace std; +int main() +{ + double n; + cin >> n; + int m = (int)(n * 100); + int a[12] = {10000, 5000, 2000, 1000, 500, 200, 100, 50, 25, 10, 5, 1}; + printf("NOTAS:\n"); + for (int i = 0; i < 12; i++) + { + if (i < 6) + { + printf("%d nota(s) de R$ %.2f\n", m / a[i], (float)a[i] / 100); + m %= a[i]; + } + if (i == 6) + printf("MOEDAS:\n"); + if (i >= 6) + { + printf("%d moeda(s) de R$ %.2f\n", m / a[i], (float)a[i] / 100); + m %= a[i]; + } + } + return 0; +}