其他分享
首页 > 其他分享> > P5705 【深基2.例7】数字反转 题解

P5705 【深基2.例7】数字反转 题解

作者:互联网

Content

给定一个一位小数\(n(100<n<1000)\),将数字反转并输出,如\(123.4\rightarrow 4.321\)。

Solution

这里运用到了一种巧妙的办法,利用字符串读入。

为什么这样可以呢?

大家跳出数的包围圈,仔细想想,\(123.4\rightarrow 4.321\),诶?不就是读入字符串并将其倒序输出吗?我们可以用另外一个数验证:\(235.4\)。如果将其按照题目中的规则反转,应该是\(4.532\),这就验证了我们的想法是正确的。要证明也很简单:设有个小数\(\overline{abc.d}\),那么按照题目中的来的话,就是将原来那个数的小数部分提到整数部分,原来的整数部分提到小数部分,并将现在这个数的小数部分按照原来的数字中相反的顺序输出。所以,反转后的小数就是\(\overline{d.cba}\),正好是将原来的小数当作字符串,求出来的就是字符串的倒序表示。

Code

#include <cstdio>
#include <cstring>
using namespace std;

char c[17];

int main() {
	scanf("%s", c);
	for(int i = strlen(c) - 1; i >= 0; --i)
		printf("%c", c[i]);
	return 0;
}

标签:include,题解,深基,字符串,读入,反转,P5705,倒序,小数
来源: https://www.cnblogs.com/Eason-AC/p/15725213.html