专业编程基础技术教程

网站首页 > 基础教程 正文

C++代码解析8

ccvgpt 2025-01-15 11:15:40 基础教程 2 ℃

71.

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    double x;
    int n;
    cin >> x >> n;
    for (int i = 1; i <= n; i++)
        x += x * 0.001; // 相当于x = x + (x * 0.001)
    cout << fixed << setprecision(4) << x;
    return 0;
}

结果:

C++代码解析8

72.

#include <iostream>
using namespace std;
int main()
{
    int k, a = 1, b = 1, c = 1;
    cin >> k;
    for (int i = 3; i <= k; i++)
    {
        c = a + b;
        a = b;
        b = c;
    }
    cout << c;
    return 0;
}

结果:

73.

#include <iostream>
using namespace std;
int main()
{
    int n, x1, x2, y1, y2;
    cin >> n >> x1 >> x2;
    double x = 1.0 * x2 / x1, y;
    for (int i = 2; i <= n; i++)
    {
        cin >> y1 >> y2;
        y = 1.0 * y2 / y1;
        if (y - x > 0.05) cout << "better" << endl;
        else if (x - y > 0.05) cout << "worse" << endl;
        else cout << "same" << endl;
    }
    return 0;
}

结果:

74.

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    // 屋顶数目、人数
    int n, m;
    // x坐标、y坐标、实际距离、所需时间
    double x, y, s, sum = 0;
    cin >> n; // 输入屋顶数目
    for (int i = 1; i <= n; i++)
    {
        // 输入x、y坐标和人数
        cin >> x >> y >> m;
        // 实际距离
        s = sqrt(x * x + y * y);
        // 所需时间=来回时间(距离÷速度×2)+所有人上下船时间
        sum += s / 25 + m * 1.5;
    }
    cout << ceil(sum);
    return 0;
}

结果:

75.

#include <iostream>
using namespace std;
int main()
{
    int me = 0, mom = 0, spend;
    for (int i = 1; i <= 12; i++)
    {
        me += 300; // 每个月多300元
        cin >> spend;
        me -= spend; // 减去预算
        if (me < 0) // 如果超支
        {
            me = -i; // me变为-月份
            break; // 退出循环,无需再计算
        }
        mom += me / 100 * 100; // 整百存给妈妈
        me %= 100; // 自己留下零钱
    }
    if (me < 0) cout << me; // 如果me<0,说明超支
    else cout << me + mom * 1.2; // 否则输出手上的钱
    return 0;
}

结果:

76.

#include <iostream>
using namespace std;
int main()
{
    int m, n, t, cnt = 0;
    cin >> m >> n;
    for (; n > 0; n--)
    {
        cin >> t;
        if (t <= m) m -= t; // 减去取走的药量
        else cnt++; // 没取上药人数+1
    }
    cout << cnt;
    return 0;
}

结果:

77.

#include <iostream>
using namespace std;
int main()
{
    int n, a, b, cnt = 0, Max = 0;
    cin >> n;
    for (; n > 0; --n)
    {
        cin >> a >> b;
        if (a >= 90 && a <= 140 && b >= 60 &&b <=90) 
        {
        	cnt++;
        	if (cnt > Max) Max = cnt;
		}
        else cnt = 0;
    }
    cout << Max;
    return 0;
}

结果:

78.

#include <iostream>
using namespace std;
int main()
{
    int n, m, a, b, c, d, cnt = 0;
    cin >> n;
    for (; n > 0; --n)
    {
        cin >> m;   //假设是1234
        a = m /1000;  // /的结果是商,即1
        b = m /100 % 10;  // 12,%10后是2
        c = m /10 % 10;  // 123,%10后是 3
        d = m % 10;  //4
        if (d - c - b - a > 0) cnt++;
    }
    cout << cnt;
    return 0;
}

结果:

79.

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int n, q = 2, p = 1, t;
    double sum = 0;
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        sum += 1.0 * q / p; // 分数求和
        t = q + p; // 求出下一个分数的分子
        p = q; // 下一个分数的分母
        q = t; // 下一个分数的分子
    }
    cout << fixed << setprecision(4) << sum;
    return 0;
}

结果:

80.

#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
    int n;
    double total = 0;
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        if (i % 2 == 0) total -= 1.0 / i;  //如果除以2余数为0 则 total -1.0/i
        else total += 1.0 / i;  //否则 total + 1.0/i
    }
    cout << fixed << setprecision(4) << total;   //保留小数点4位
    return 0;
}

结果:

最近发表
标签列表