用浮点除法计算每人饮料量,并用格式化字符串保留三位小数。
OJ: luogu
题目 ID: P5706
难度:入门
标签:python入门输入输出数学
日期: 2026-07-15 17:56
题意
有
思路
每人得到的饮料量是 t / n,杯子总数是 n * 2。这题的关键不在计算,而在输出格式:第一行必须固定显示三位小数。
brute.py 不适合这题,因为直接公式就是完整解法,没有需要枚举验证的算法过程。
Python 知识
input().split()得到两个字符串 token。float(t)把饮料总量转成浮点数,int(n)把人数转成整数。f"{value:.3f}"表示保留小数点后位输出,会按常规规则四舍五入。 - 多行输出可以连续调用两次
print()。
对应的本地 Python 笔记:
/home/rainboy/mycode/hugo-blog/content/program_language/python/input_output_and_strings.md:float、int、一行多值输入。/home/rainboy/mycode/hugo-blog/content/program_language/python/oj_input_output_cheatsheet.md:控制浮点数小数位数和多行输出。
代码
python
t, n = input().split()
t = float(t)
n = int(n)
print(f"{t / n:.3f}\n{n * 2}", end="")cpp
/**
* Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
* rbook: -> https://rbook.roj.ac.cn https://rbook2.roj.ac.cn
* rainboy的学习导航网站: https://idx.roj.ac.cn
* create_at: 2026-07-27 00:00
* update_at: 2026-07-27 00:00
*/
#include <bits/stdc++.h>
using namespace std;
int main() {
double t; // 饮料总量(毫升)
int n; // 同学人数
cin >> t >> n;
// 第一行:每人分到的饮料,保留 3 位小数
printf("%.3f\n", t / n);
// 第二行:每人需要 2 个杯子,共需要 n * 2 个
cout << n * 2 << endl;
return 0;
}Pythonic 写法
f-string:
python
t, n = input().split()
print(f'{float(t) / int(n):.3f}\n{int(n) * 2}', end='')复杂度
只做常数次运算,时间复杂度
总结
浮点题先看清楚题目要求“保留几位小数”。Python 的 f-string 格式化可以直接表达这个输出要求。