【题目描述】
用手机发短信,一条短信资费为0.1元,但限定一条短信的内容在70个字以内(包括70个字)。如果你一次所发送的短信超过了70个字,则会按照每70个字一条短信的限制把它分割成多条短信发送。假设已经知道你当月所发送的短信的字数,试统计一下你当月短信的总资费。
【输入】
第一行是整数n,表示当月发送短信的总次数,接着n行每行一个整数,表示每次短信的字数。
【输出】
输出一行,当月短信总资费,单位为元,精确到小数点后1位。
【输入样例】
10
39
49
42
61
44
147
42
72
35
46
【输出样例】
1.3
【思路】
设置一个ans记录总费用,main函数输入n,循环n次,输入每条短信的长度x。设置一个dx函数计算单条短信的价格,将x传至dx函数,如果x能被70整除,如70,140等,那么费用就是x/70。如果x不能被70整除,比若干个70多的部分按一条短信算,费用为1。其余部分是能被70整除的,费用为a/70。所以总费用就是x/70+1。每次循环输入输入x后,ans加上dx(x)的返回值。最终输出ans,就是本月短信的总费用。
【代码】
#include<bits/stdc++.h>
using namespace std;
float n,ans,x;
int dx(int a){
if (a%70==0)
return x/70;
if (a%70!=0)
return x/70+1;
}
int main(){
cin>>n;
for (int i=1;i<=n;i++){
cin>>x;
ans+=dx(x);
}
printf("%.1f",ans/10.0);
return 0;
}