《C++编程这样学》第六章:格式化输入输出- 加油站题解

1. 温度转换

题目链接:http://csp.magu.ltd/problem/J0604

【问题描述】

摄氏温度和华氏温度的转化公式为, C = 5 ∗ ( F − 32 ) / 9 C=5*(F-32)/9 C=5(F32)/9(其中C表示摄氏温度,F表示华氏温度)。
编写程序,输入华氏温度F,输出摄氏温度,结果保留到小数点后5位。

【题解代码】
#include <iostream>
using namespace std;

int main()
{
    double F;
    scanf("%lf", &F);
    printf("%.5f", 5 * (F - 32) / 9.0);
    return 0;
}

2. 计算人口数量

题目链接:http://csp.magu.ltd/problem/J0605

【问题描述】

某国现有x亿人口,每年的增长率为千分之a,编写程序,计算n年后的人口数。

【题解代码】
#include <iostream>
using namespace std;

int main()
{
    double x;
    int a, n;
    scanf("%lf%d%d", &x, &a, &n);
    while (n--)
    {
        x = x + x * (0.001 * a);
    }
    printf("%.4f", x);
    return 0;
}

3. 求e的值

题目链接:http://csp.magu.ltd/problem/J0606

【问题描述】

数学中有许多重要的常数,如圆周率π和虚数单位i、自然对数的底数e。e是一个无限不循环小数,且为超越数,其值约为2.718281828459045。

e的计算公式为: e = 1 + 1 / 1 ! + 1 / 2 ! + 1 / 3 ! + . . . + 1 / n ! e = 1 + 1/1! + 1/2! + 1/3! + ... + 1/n! e=1+1/1!+1/2!+1/3!+...+1/n!

编写程序,输入整数n,计算e的值,结果保留到小数点后12位。

【题解代码】
#include <iostream>
using namespace std;

int main()
{
    int n;
    scanf("%d", &n);
    double e = 1;
    long long m = 1;
    for (int i = 1; i <= n; i++)
    {
        m *= i;
        e += 1.0 / m;
    }
    printf("%.12f", e);
    return 0;
}

4. 超越

题目链接:http://csp.magu.ltd/problem/J0607

【问题描述】

购买不同的理财产品,财富的增长速度会有很大差别。小明起初有 a a a 元存款,选择了年增长速度为 b % b\% b% 的理财方式;小刚起初有 x x x 元存款,选择了年增长速度为 y % y\% y% 的理财方式,所有理财产品都是年复利,即一年进行一次利息计算,所得的利息和本金一起作为下一年的本金。

编写程序,计算经过多少年,小刚的存款会超过小明。

【题解代码】
#include <iostream>
using namespace std;

int main()
{
    double a, b, x, y;
    scanf("%lf%lf%lf%lf", &a, &b, &x, &y);
    int year = 0, t = 50;
    while (t--)
    {
        if (x > a)
        {
            cout << year << endl;
            return 0;
        }
        a = (1 + (0.01 * b)) * a;
        x = (1 + (0.01 * y)) * x;
        year++;
    }
    cout << "NOT POSSIBLE";
    return 0;
}
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值