A17038. 长征里程计算
填空题
中等
知识点
题目描述
长征里程计算
题目描述
红军从江西瑞金出发,开始了举世闻名的两万五千里长征。出发之初,部队还需要适应高强度行军,第一天只行进了 x 公里;随着将士们体能的锻炼和路线的熟悉,之后每一天都比前一天多行进 y 公里。
请你帮助史料研究员计算两个数据:
1. 第 n 天这一天,红军行军的里程数;
2. 前 n 天累计的总行军里程。
由于真实行军数据精确到小数(如 30.5 公里),本题中 x、y 均为实数(可能含小数)。
输入格式
一行三个数 x y n,用空格分隔,分别表示第一天行军里程、每天增加的里程、第几天。x、y 为实数,n 为整数。
输出格式
一行两个数,用一个空格分隔:
1. 第 n 天的行军里程;
2. 前 n 天累计的总行军里程。
两个数都必须保留 2 位小数。
补充校验样例
无本题官方样例,以下样例用于自测。
5 2.5 3
50 99.00
参考答案
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
double x, y;
cin >> x >> y >> n;
// an 表示第 n 天的行军里程
double an = x + (n - 1) * y;
// sn 表示前 n 天的累计行军里程
double sn = n * (x + an) / 2.0;
// 题目要求两个结果都保留 2 位小数
cout << fixed << setprecision(2);
cout << an << " " << sn;
return 0;
}答案解析
每天的里程构成等差数列:
1. 第 1 天为 x;
2. 公差为 y;
3. 第 n 天为 x + (n - 1) * y;
4. 前 n 天总和为 n * (x + 第 n 天 ) / 2。
上一题
下一题