【题目链接】
ybt 1398:短信计费
 OpenJudge NOI 1.12 02:短信计费
【题目考点】
1. 函数
2. <cmath>中的取整函数
- 向上取整 : double ceil(double x);
- 向下取整 : double floor(double x);
- 四舍五入取整 : double round(double x);
【题解代码】
解法1:写函数求特定字数短信的费用
#include<bits/stdc++.h>
using namespace std;
double price(int num)//求字符数量为num的短信的费用 
{
	if(num % 70 == 0)//如果字符数量是70的整数倍 
		return num / 70 * 0.1;//有num/70条短信 
	else//如果字符数量不是70的整数倍 
		return (num / 70 + 1) * 0.1;//有num/70+1条短信 
}
int main()
{
    int n, num;
    cin >> n;
    double sum = 0;//总费用 
    for(int i = 0; i < n; ++i)
    {
        cin >> num;
        sum += price(num);
    }
    cout << fixed << setprecision(1) << sum;
    return 0;
}
解法2:使用向上取整ceil函数
短信条数即为 ⌈ 字 数 / 70 ⌉ \lceil 字数/70 \rceil ⌈字数/70⌉
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n, num;
    cin >> n;
    double sum = 0;//总费用 
    for(int i = 0; i < n; ++i)
    {
        cin >> num;
        sum += ceil((double)num/70)*0.1;//注意做类型转换,保证进行实数除法 
    }
    cout << fixed << setprecision(1) << sum;
    return 0;
}










