信息学奥赛一本通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进行数据的读取和输出。
相关推荐
水木流年追梦14 分钟前
大模型入门-大模型优化方法13- MTP 多 token 输出、DCA 双块注意力
人工智能·分布式·算法·正则表达式·prompt
特种加菲猫17 分钟前
C++11核心特性深度解析:从列表初始化到lambda与包装器
开发语言·c++
数据皮皮侠20 分钟前
全国消协智慧 315 平台投诉信息数据库
大数据·人工智能·算法·百度·制造
8Qi828 分钟前
LeetCode 115 & 392:不同子序列 / 判断子序列
算法·leetcode·职场和发展·动态规划
枕星而眠31 分钟前
C++ 面向对象核心机制深度解析:多态性、虚函数、虚继承与 final 类
运维·开发语言·c++·后端
小蒋学算法1 小时前
算法-乘法表中第K小的数-二分
数据结构·算法
智者知已应修善业1 小时前
【51单片机8个LED,已经使用了D1D2,怎么样在不动D1D2的前提下实现D6~D8的流水灯】2024-1-19
c++·经验分享·笔记·算法·51单片机
Evand J1 小时前
【MATLAB例程】自适应渐消扩展卡尔曼滤波(AFEKF)三维雷达目标跟踪|效果已调优,附下载链接和运行结果,代码直接运行即可
开发语言·算法·matlab·目标跟踪·卡尔曼滤波·自适应滤波·代码定制
坚果派·白晓明1 小时前
鸿蒙PC适配实战:simdjson 三方库移植攻略与 AtomCode Skills 提效之道
c++·harmonyos·三方库·skills·atomcode·c/c++三方库·c/c++三方库适配
爱装代码的小瓶子1 小时前
3. 设计buffer模块
linux·服务器·开发语言·c++·php