当前位置: 首页 > news >正文

2025_11_14洛谷【入门1】数据结构刷题小结

一、P5705 【深基2.例7】数字反转 - 洛谷

方法1

        关于这一个题,我看见数字的反转我就先想到利用取模%和除法/依次得到每一位数,但是发现它是一个浮点数,浮点数是不可以进行取模运算的,我就想着直接创建一个int类型的变量c,然后它直接等于输入的浮点数a*10,这样循环遍历,每次c%10就可以得到个位的数,然后输出变量b就是等于b*10+c%10,接着c等于c/10,循环结束的条件为c>0,这样按照样例来说,最后的b就等于了4321,再让b除以1000,就变成了浮点数,然后输出就行。这是我自己理解的方法,代码如下:

#include<iostream>
using namespace std;
int main()
{double a = 0;cin >> a;double b = 0;//先乘以10在依次%10,/10得到每一位数,最后得到的4位数除100int c = a * 10;while (c > 0){b = b * 10 + c % 10;c = c / 10;}cout << b / 1000;return 0;
}

方法2

        然后我还在题解中发现了,原来这个题是可以用字符来写的,对应的代码如下:

#include<iostream>
using namespace std;
string a;
signed main()
{cin >> a;int len = a.size();for (int i = len - 1; i >= 0; i--)cout << a[i];return 0;
}

        先是定义字符串变量a,然后输入样例123.4,这里其实是以字符串的形式存储的这个浮点数,包含了那个小数点,然后调用size()方法计算字符串长度存放在整形变量len中,然后用for循环从后向前依次输出字符串中的每个字符,包括小数点。

方法3

        更简单的还有直接用scanf和printf直接输入:

#include <iostream>using namespace std;
char a, b, c, d;
int main(){scanf("%c%c%c.%c", &a, &b, &c, &d);printf("%c.%c%c%c", d, c, b, a);return 0;
}

        这里直接定义4个字符,然后scanf格式化输入,printf格式化输出,非常简单!但是这里要注意的是scanf输入必须要和引号中的一样,以样例为例就输入:123.4。

方法4

        还有更更简单的主要代码就一行,代码如下:

#include<iostream>
using namespace std;
int main()
{printf("%c%c%c%c%c\n", getchar(), getchar(), getchar(), getchar(), getchar());return 0;
}

        这里利用了printf函数的一个特性,参数从后往前求值,即:printf("%u %u\n",work1(),work2())会先执行work2(),再执行work2()。所以这里我们先输入123.4,则从后往前的getchar函数依次得到的数为4.321,这样就完成了数字反转,非常简单!

二、P5706 【深基2.例8】再分肥宅水 - 洛谷

方法1

        这个题比较思路非常明确,要计算哪些东西也都已经说清楚了,但是我想用C++中cout的格式化输出浮点数,这就要用到iomanip这个库中的函数,fixed用来强制以固定小数点格式输出,而不是科学计数法,setprecision(n)设置小数点后保留的位数,所以具体代码如下:

#include<iostream>
#include <iomanip>
using namespace std;
int main()
{double t = 0;int n = 0;cin >> t >> n;cout << fixed << setprecision(3)<<(t / n) << endl;cout << n * 2;return 0;
}

方法2

        也可以直接使用C语言中的print函数,这样更简单,具体代码如下:

#include<iostream>
using namespace std;
int main()
{double t = 0;int n = 0;cin >> t >> n;printf("%.3f\n%d", (t / n) * 1.000, n * 2);return 0;
}

        这里有一个小点要注意,t/n的结果可能是一个整数,因为整数除以整数的结果为整数,所以我们需要乘以1.000。

http://www.dtcms.com/a/610087.html

相关文章:

  • wordpress打赏链接网站建设 小影seo
  • 哪个网站能学做微商上海建设网站是多少
  • 第34节:反向运动学与角色动画自然化
  • Virtual Ontology:基于语义层的自然语言SQL生成系统技术深度解析
  • Django过时了吗?从ASGI到AI时代的思考
  • 网站建设需求和页面需求怎么提5m带宽做视频网站
  • 图论专题(六):“隐式图”的登场!DFS/BFS 攻克「岛屿数量」
  • 当Rokid遇见BOLON,科技与时尚的这次握手重新定义“眼镜”
  • 图论专题(五):图遍历的“终极考验”——深度「克隆图」
  • 商业网站策划书模板范文asp 网站发布器
  • STM32WB55官方OTA例程
  • [Column] How Databricks Implemented Intelligent K8s Load Balancing
  • 网站建设好多钱菏泽郓城网站建设
  • 做互联网营销一般上什么网站cms系统都有哪些
  • 【算法】回溯算法精讲:从深度优先搜索到剪枝优化​
  • C语言知识体系梳理-第一篇
  • 克隆网站怎么做长沙网站建设公司名单
  • 【ASP.NET进阶】Controller 层基础:从 MVC 5 到 Core,继承的奥秘与避坑指南
  • PyTorch深度学习进阶(四)(数据增广)
  • 股指期货豁免开通条件是什么?
  • 上传模型/数据集到huggingface的三种方法
  • 33_FastMCP 2.x 中文文档之FastMCP客户端核心业务:提示模板详解
  • wordpress插件访客亚马逊seo推广
  • Juc篇-线程安全问题引入(从i++问题的底层出发)
  • Arbess V2.1.7版本发布,新增任务AliYun OSS上传、下载功能,新增流水线评审功能
  • 算法基础篇:(八)贪心算法之简单贪心:从直觉到逻辑的实战指南
  • 昊源建设监理有限公司网站外贸网站代码
  • 大专生就业:学历限制的现实考量与能力突围路径
  • Node.js 与 Docker 深度整合:轻松部署与管理 Node.js 应用
  • 中国企业500强榜单2021廊坊seo排名优化