每条短信用向上取整计算计费条数,再累加并换算为元。
OJ: noi_openjudge
题目 ID: ch0112-02
难度:入门
标签:模拟数学python
日期: 2026-07-30 23:01
题意
每 70 个字或不足 70 个字计一条短信,统计总资费。
思路
长度为 length 的短信需计费 (length + 69) // 70 条,这是正整数除法的向上取整公式。累计条数后乘以 0.1 元并固定输出一位小数。
代码
Python代码
python
message_count = int(input())
billable_messages = sum((int(input()) + 69) // 70 for _ in range(message_count))
print(f"{billable_messages / 10:.1f}")C++代码
cpp
#include <cstdio>
int n;
double sum = 0;
void init(){
scanf("%d",&n);
}
double calc(int len){
int a = len / 70;
if( len % 70 != 0 )
a++;
return a*0.1;
}
int main(){
init();
int i,t;
for (i=1;i<=n;i++){
scanf("%d",&t);
sum += calc(t);
}
printf("%0.1lf\n",sum);
return 0;
}复杂度
时间复杂度为
总结
正整数向上取整除法可记作 (a + b - 1) // b。