202606-交税(luogu-B4552)
GESP C++一级,2026年6月真题,基础运算和循环语句,难度⭐,洛谷难度入门。
luogu-B4552 [GESP202606 一级] 交税
题目要求
题目描述
根据国家税收相关规定,劳务报酬需要按月预交个税,预交税率如下:
- 劳务报酬不超过 的,不需要预交个税;
- 劳务报酬超过 的,仅超过 的部分按照 (即 )税率预交个税(不超过 的部分不需要预交个税);
例如,月劳务报酬为 ,则按照规则 需要预交个税 。
现在给定小杨同学 个月的月度劳务报酬,请帮小杨同学计算他这 个月应预交个税的总和。
输入格式
输入 行,每行一个浮点数,表示小杨同学 个月中每个月的劳务报酬。
每个浮点数恰好有一位小数。
输出格式
输出 行,一个浮点数,保留两位小数,表示小杨同学 个月应预交个税的总和。
输入输出样例 #1
输入 #1
932.0
1634.3
1790.4
2172.9
378.1
283.4
2761.9
3583.5
10.1
2324.9
1111.6
3812.3输出 #1
2584.76说明/提示
样例解释 1
- 符合规则 ,超过 的部分为 ,按照 预交为 ;
- 符合规则 ,超过 的部分为 ,按照 预交为 ;
- 符合规则 ,超过 的部分为 ,按照 预交为 ;
- 符合规则 ,超过 的部分为 ,按照 预交为 ;
- 符合规则 ,不需要预交个税;
- 符合规则 ,不需要预交个税;
- 符合规则 ,超过 的部分为 ,按照 预交为 ;
- 符合规则 ,超过 的部分为 ,按照 预交为 ;
- 符合规则 ,不需要预交个税;
- 符合规则 ,超过 的部分为 ,按照 预交为 ;
- 符合规则 ,超过 的部分为 ,按照 预交为 ;
- 符合规则 ,超过 的部分为 ,按照 预交为 ;
总和为 。
数据范围
小杨同学每月劳务报酬收入均为正,且恰好有一位小数,且不超过 。
题目分析
解题思路
本题的解题思路如下:
问题本质:
- 输入 个浮点数,代表每月的劳务报酬
- 对每个月的报酬,按规则计算应预交的个税,最后求总和
解题关键 — 分段计算与累加:
- 对于每个月的劳务报酬 :若 ,该月个税为 ;若 ,该月个税为
- 将 个月的个税累加即可
- 输入是浮点数(带一位小数),需要使用
double类型 - 输出需要保留两位小数
复杂度分析:
- 时间复杂度:,固定循环 次
- 空间复杂度:,只需要存储几个变量
示例代码
#include <cstdio>
int main() {
// 用于累加12个月的个税总和
double total = 0.0;
// 循环读取12个月的劳务报酬
for (int i = 0; i < 12; i++) {
double salary;
// 从标准输入读取当月劳务报酬
scanf("%lf", &salary);
// 如果报酬超过800,对超出部分按20%计算个税并累加
if (salary > 800.0) {
total += (salary - 800.0) * 0.2;
}
}
// 输出12个月应预交个税总和,保留两位小数
printf("%.2f\n", total);
return 0;
}本文由coderli.com原创,按照CC BY-NC-SA 4.0 进行授权
所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code
“luogu-”系列题目可在 洛谷题库 在线评测。
“bcqm-”系列题目可在 编程启蒙题库 在线评测。
GESP/CSP认证交流QQ群: 688906745
GESP/CSP 认证学习微信公众号

最后更新于