信息学奥赛一本通(c++):2066:【例2.3】买图书

此篇博客讲解了如何利用C++编程解决小明购买打8折书籍后剩余钱数的问题,涉及setprecision和setw函数的使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、题目

2066:【例2.3】买图书
时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

已知小明有n元,他买了一本书,这本书原价为m元,现在打8折出售。求小明还剩多少钱(保留2位小数)。

【输入】

输入n,m。

【输出】

小明还剩多少钱(保留2位小数)。

【输入样例】

100 100

【输出样例】

20.00

二、代码

#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
int n,m;

cin>>n>>m;

cout<<fixed<<setprecision(2)<<n-m*0.8;

return 0;
}

三、知识点

注意添加#include <iomanip> 头文件     setw(n)  setprecision(n)

1.setprecision(n):浮点值可以四舍五入到若干位有效数或精度,这是出现在小数点前后的总位数。可以通过使用 setprecision 操作符来控制显示浮点数值的有效数的数量。

例: 5.201314

setprecision(2):5.20

setprecision(4):5.2013

setprecision(10):5.201314

2.setw(n):C++ setw() 函数用于设置字段的宽度。当后面紧跟着的输出字段长度小于 n 的时候,在该字段前面用空格补齐,当输出字段长度大于 n 时,全部整体输出。注意区别。

例:5.201314

setw(2):5.2

setw(4):5.201

setw(10):_ _ _5.201314

更多输出控制可以自己搜索。

### 信息学奥赛一本20164.1 for循环求和 Java 实现及解析 #### 题目描述 利用`for`循环计算并输出\(1 + 2 + 3 + ... + n\)的和。 #### 输入 输入整数`n`。 #### 输出 如题述,序列之和。 #### 数据范围 对于100%的数据,满足条件\(1 \leq n \leq 100\)[^2]。 #### 解析与代码实现 为了完成此任务,在Java中可以采用如下方式: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 获取用户输入的数值n int n = scanner.nextInt(); int sum = 0; // 使用for循环累加从1到n的所有整数 for (int i = 1; i <= n; ++i){ sum += i; } // 打印最终的结果 System.out.println(sum); scanner.close(); // 关闭scanner对象防止资源泄露 } } ``` 上述程序首先导入必要的包以便能够读取用户的键盘输入。接着定义了一个名为`Main`的公共类,其中包含了静态方法`main()`作为程序入口点。在此函数内部创建了`Scanner`实用于接收来自标准输入流(即控制台)的数据;随后初始化变量`sum`用来存储累积总和,并过`for`循环迭代地增加这个值直到达到给定的最大界限`n`为止。最后一步则是调用`System.out.println()`打印出所得到的结果[^3]。 值得注意的是,这里同样遵循了原C++版本中的逻辑结构——先声明所需变量再进入循环体逐步更新它们的状态直至结束条件达成之后才进行结果展示的操作流程[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值