信息学奥赛一本通C++ - 第二章 - 第二节 常量和变量

2067:【例2.5】圆

题目描述

输入半径r,输出圆的直径、周长、面积,数与数之间以一个空格分开,每个数保留小数点后4位。

解题思路
  1. 读取输入:从输入中读取半径r。
  2. 计算直径、周长、面积
    • 直径 = 2 * r
    • 周长 = 2 * π * r
    • 面积 = π * r^2
  3. 输出结果:输出计算得到的直径、周长、面积,每个数保留小数点后4位。
代码实现
cpp 复制代码
#include <iostream>
#include <iomanip> // 用于设置输出格式
using namespace std;

const double PI = 3.1415926; // 定义π的值

int main() {
    double r; // 定义半径
    cin >> r; // 从输入读取半径

    double diameter = 2 * r; // 计算直径
    double circumference = 2 * PI * r; // 计算周长
    double area = PI * r * r; // 计算面积

    // 设置输出为固定小数点格式,保留4位小数
    cout << fixed << setprecision(4) << diameter << " " << circumference << " " << area;

    return 0; // 程序结束
}
代码解析
  • 使用一个浮点数变量r来存储输入的半径。
  • 计算圆的直径、周长和面积,使用π的近似值。
  • 使用cout<iomanip>库中的setprecision函数输出结果,保留4位小数。
  • 程序使用标准输入输出流cincout进行数据的读取和输出。

2068:【例2.6】鸡兔同笼

题目描述

已知头共x个,脚共y只,问笼中的鸡和兔各有多少只?

解题思路
  1. 读取输入:从输入中读取头的总数x和脚的总数y。
  2. 设立方程求解
    • 设鸡有j只,兔有t只,可以建立两个方程:
      • j + t = x (头的总数)
      • 2j + 4t = y (脚的总数)
    • 通过解这两个方程,可以求出鸡和兔各有多少只。
  3. 输出结果:输出鸡和兔各自的数量。
代码实现
cpp 复制代码
#include <iostream>
using namespace std;

int main() {
    int x, y; // 定义头的总数和脚的总数
    cin >> x >> y; // 从输入读取头和脚的数量

    int j, t; // 定义鸡和兔的数量
    t = (y - 2 * x) / 2; // 解方程求兔的数量
    j = x - t; // 解方程求鸡的数量

    cout << j << " " << t; // 输出鸡和兔的数量

    return 0; // 程序结束
}
代码解析
  • 使用两个整数变量x(头的总数)和y(脚的总数)来存储输入的值。
  • 通过解方程组计算出鸡(j)和兔(t)的数量。
  • 使用cout输出计算出的鸡和兔的数量。
  • 程序使用标准输入输出流cincout进行数据的读取和输出。

1011:甲流疫情死亡率

题目描述

根据甲流确诊数和死亡数,计算甲流的死亡率,输出格式为百分数,精确到小数点后3位。

解题思路
  1. 读取输入:从输入中读取甲流的确诊数和死亡数。
  2. 计算死亡率:死亡率 = (死亡数 / 确诊数)* 100。
  3. 输出结果:输出甲流的死亡率,格式为百分数,保留小数点后3位。
代码实现
cpp 复制代码
#include <iostream>
#include <iomanip> // 用于设置输出格式
using namespace std;

int main() {
    int confirmed, deaths; // 定义确诊数和死亡数
    cin >> confirmed >> deaths; // 从输入读取确诊数和死亡数

    double mortalityRate = (double)deaths / confirmed * 100; // 计算死亡率

    // 设置输出为固定小数点格式,保留3位小数,并输出百分数
    cout << fixed << setprecision(3) << mortalityRate << "%";

    return 0; // 程序结束
}
代码解析
  • 使用两个整数变量confirmed(确诊数)和deaths(死亡数)来存储输入的值。
  • 计算死亡率时,将死亡数和确诊数转换为浮点数以进行浮点数运算,然后乘以100得到百分比。
  • 使用cout<iomanip>库中的setprecision函数输出死亡率,保留3位小数,并附加%符号表示百分比。
  • 程序使用标准输入输出流cincout进行数据的读取和输出。

1012:计算多项式的值

题目描述

对于多项式( f(x) = ax^3 + bx^2 + cx + d ) 和给定的 ( a, b, c, d, x ),计算 ( f(x) ) 的值,保留到小数点后7位。

解题思路
  1. 读取输入:从输入中读取5个实数,分别为x及参数a、b、c、d。
  2. 计算多项式:使用给定的参数值计算多项式 ( f(x) = ax^3 + bx^2 + cx + d )。
  3. 输出结果:输出多项式的值,保留到小数点后7位。
代码实现
cpp 复制代码
#include <iostream>
#include <iomanip> // 用于设置输出格式
using namespace std;

int main() {
    double x, a, b, c, d; // 定义x,及参数a、b、c、d
    cin >> x >> a >> b >> c >> d; // 从输入读取x及参数a、b、c、d

    // 计算多项式的值
    double result = a * x * x * x + b * x * x + c * x + d;

    // 设置输出为固定小数点格式,保留7位小数
    cout << fixed << setprecision(7) << result;

    return 0; // 程序结束
}
代码解析
  • 使用5个浮点数变量x, a, b, c, d来存储输入的值。
  • 根据给定的多项式公式计算f(x)的值。
  • 使用cout<iomanip>库中的setprecision函数输出计算结果,保留7位小数。
  • 程序使用标准输入输出流cincout进行数据的读取和输出。

1013:温度表达转化

题目描述

利用公式 C = 5 * (F - 32) / 9 (其中C表示摄氏温度,F表示华氏温度)进行计算转化,输入华氏温度F,输出摄氏温度C,要求精确到小数点后5位。

解题思路
  1. 读取输入:从输入中读取华氏温度F。
  2. 温度转化:使用公式 C = 5 * (F - 32) / 9 转换华氏温度到摄氏温度。
  3. 输出结果:输出摄氏温度C,保留小数点后5位。
代码实现
cpp 复制代码
#include <iostream>
#include <iomanip> // 用于设置输出格式
using namespace std;

int main() {
    double F; // 定义华氏温度变量
    cin >> F; // 从输入读取华氏温度

    // 转换华氏温度到摄氏温度
    double C = 5 * (F - 32) / 9;

    // 设置输出为固定小数点格式,保留5位小数
    cout << fixed << setprecision(5) << C;

    return 0; // 程序结束
}
代码解析
  • 使用一个浮点数变量F来存储输入的华氏温度。
  • 根据温度转换公式计算摄氏温度C
  • 使用cout<iomanip>库中的setprecision函数输出摄氏温度,保留5位小数。
  • 程序使用标准输入输出流cincout进行数据的读取和输出。

1014:与圆相关的计算

题目描述

给出圆的半径,求圆的直径、周长和面积。输入圆的半径实数r,输出圆的直径、周长、面积,每个数保留小数点后4位。圆周率取值为3.14159。

解题思路
  1. 读取输入:从输入中读取圆的半径r。
  2. 计算圆的直径、周长和面积
    • 直径 = 2 * r
    • 周长 = 2 * π * r
    • 面积 = π * r^2
  3. 输出结果:输出圆的直径、周长、面积,每个数保留小数点后4位。
代码实现
cpp 复制代码
#include <iostream>
#include <iomanip> // 用于设置输出格式
using namespace std;

const double PI = 3.14159; // 定义圆周率的值

int main() {
    double r; // 定义圆的半径
    cin >> r; // 从输入读取圆的半径

    double diameter = 2 * r; // 计算直径
    double circumference = 2 * PI * r; // 计算周长
    double area = PI * r * r; // 计算面积

    // 设置输出为固定小数点格式,保留4位小数
    cout << fixed << setprecision(4) << diameter << " " << circumference << " " << area;

    return 0; // 程序结束
}
代码解析
  • 使用一个浮点数变量r来存储输入的圆的半径。
  • 根据给定的圆周率PI和半径r计算圆的直径、周长和面积。
  • 使用cout<iomanip>库中的setprecision函数输出结果,保留4位小数。
  • 程序使用标准输入输出流cincout进行数据的读取和输出。

1015:计算并联电阻的阻值

题目描述

对于阻值为r1和r2的电阻,其并联电阻阻值公式计算如下:R = 1 / ( (1 / r1) + (1 / r2))。输入两个电阻阻抗大小,浮点型。输出并联之后的阻抗大小,结果保留小数点后2位。

解题思路
  1. 读取输入:从输入中读取两个电阻的阻抗值r1和r2。
  2. 计算并联电阻的阻值:使用公式R = 1 / ( (1 / r1) + (1 / r2))计算并联后的电阻值。
  3. 输出结果:输出并联电阻的阻值,保留小数点后2位。
代码实现
cpp 复制代码
#include <iostream>
#include <iomanip> // 用于设置输出格式
using namespace std;

int main() {
    double r1, r2; // 定义两个电阻的阻抗值
    cin >> r1 >> r2; // 从输入读取两个电阻的阻抗值

    // 计算并联电阻的阻值
    double R = 1 / (1 / r1 + 1 / r2);

    // 设置输出为固定小数点格式,保留2位小数
    cout << fixed << setprecision(2) << R;

    return 0; // 程序结束
}
代码解析
  • 使用两个浮点数变量r1r2来存储输入的两个电阻的阻抗值。
  • 根据并联电阻的计算公式求出结果。
  • 使用cout<iomanip>库中的setprecision函数输出计算结果,保留2位小数。
  • 程序使用标准输入输出流cincout进行数据的读取和输出。
相关推荐
sukalot11 分钟前
windows C++-windows C++-使用任务和 XML HTTP 请求进行连接(二)
c++·windows
_.Switch14 分钟前
Python机器学习模型的部署与维护:版本管理、监控与更新策略
开发语言·人工智能·python·算法·机器学习
qianbo_insist33 分钟前
simple c++ 无锁队列
开发语言·c++
zengy534 分钟前
Effective C++中文版学习记录(三)
数据结构·c++·学习·stl
MinBadGuy1 小时前
【GeekBand】C++设计模式笔记5_Observer_观察者模式
c++·设计模式
自由的dream1 小时前
0-1背包问题
算法
2401_857297912 小时前
招联金融2025校招内推
java·前端·算法·金融·求职招聘
良月澪二3 小时前
CSP-S 2021 T1廊桥分配
算法·图论
wangyue44 小时前
c# 线性回归和多项式拟合
算法
&梧桐树夏4 小时前
【算法系列-链表】删除链表的倒数第N个结点
数据结构·算法·链表