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