专栏文章
题解:P5705 【深基2.例7】数字反转
P5705题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mipbyv8c
- 此快照首次捕获于
- 2025/12/03 09:30 3 个月前
- 此快照最后确认于
- 2025/12/03 09:30 3 个月前
题目大意
给定一个浮点数(说通俗点,就是小数),输出将其反转之后的浮点数。
思路
(下面将用对话的形式讲解)
思路
小 A 同学:这题我会!我学过一个东西叫做字符!它不仅能存储“字母字符”,还能存储“数字字符”!
teacher:OK,那我们顺着这个思路往下走,题目说这个数字大于 ,也小于 ,同时只有 个小数位,再结合样例,数也数得出来,这一共有 个字符,可以用 个字符变量存储!
teacher:现在动手去试试!如果还是没想法就来看看代码吧!
CPP
#include <iostream>
using namespace std;
int main() {
char a, b, c, d, e;
cin >> a >> b >> c >> d >> e;
cout << e << d << c << b << a;
return 0;
}
思路
小 A 同学:这题我还会!我还学过模运算!
teacher:没错!我们假设 ,那么我们先不管那个小数点,设 。
那么,我们要的答案 (去掉小数点后)满足
接下来,我们分别处理出 。它们分别是:
这里, 表示不超过 的最大整数,也就是向下取整。但是在
c++ 中,整型除法是自动向下取整的,所以你不用担心。teacher:最后处理好小数点即可。下面是代码
CPP#include <iostream>
using namespace std;
int main() {
double A;
cin >> A;
int A1 = A * 10;
int a = A1 / 1000;
int b = A1 / 100 % 10;
int c = A1 / 10 % 10;
int d = A1 % 10;
cout << d << "." << c << b << a;
return 0;
}
小 A;等等,输出好像就是从字符变成了整型,看起来这种方法太复杂了。
teacher:其实不然,在算法竞赛里,很多情况下需要处理出一个数字中的每一位,出了转换成字符串之外,这种思想也是很重要的。
其实,以上仅仅是两种比较方便而且不超出目前的你的知识范畴的方法,以后还有字符串,格式化输入输出等等等等方法,等着你探索。
最后,用庄子的一句话作为结尾吧。
“吾生也有涯,而知也无涯。” ——庄子
加油探索吧!QWQ
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...