数字反转
题目描述
输入一个不小于 且小于 ,同时包括小数点后一位的一个浮点数,例如 ,要求把这个数字翻转过来,变成 并输出。
输入格式
一行一个浮点数
输出格式
一行一个浮点数
输入输出样例 #1
输入 #1
123.4
输出 #1
4.321
C
1
常用的输入控制符有:
%d
:读入一个 32 位有符号整数。
%u
:读入一个 32 位无符号整数。
%lld
:读入一个 64 位有符号整数。
%llu
:读入一个 64 位无符号整数。
%f
:读入一个 float 类型。
%lf
:读入一个 double 类型。
先定义四个字符类型。
当然,如果输入中有多余的已知字符,可以在 scanf 中用该字符占位。
例如输入是 2021.805,使用如下代码读入,a
,b
的值分别为 2021,805。
scanf("%d.%d", &a, &b);
本题 AC 代码:
#include <cstdio>
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;
}
2
我们注意到,本题的输入长度固定为 5 个字符,且其中第 4 个字符为小数点。
要求反转 abc.d
,即:输出 d.cba
。
我们发现,把包括小数点在内的5个字符顺序反转后输出即可。进而我们联想到 printf 函数的一个重要特性:参数从后往前求值。 即:
printf("%u %u\n", work1(), work2())
会先执行 work2()
再执行 work1()
。
利用这一特性,我们可以得到核心代码:
printf("%c%c%c%c%c", getchar(), getchar(), getchar(), getchar(), getchar());
C++
1
我们先来认识一下c++
的字符串string
,这个类型相当于c
中char[]
,和char一样,string
也可以用数组表示多个字符串,即string a[]
。接下来看看常见的几个string
类型操作:
string a;//定义一个string类字符串。
int len=a.size()//读取串a的长度,注意此时a中字符下标是从0开始的。
有了这些,我们便可以反转了!
#include<bits/stdc++.h>万能头文件
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;
}
字符串的反转操作我们可以用STL
也可以直接倒序输出。
介绍一下STL
里面的反转字符串函数 reverse()
其格式是: reverse( 数组名 .begin() , 数组名 .end() );
在此大呼一声:STL大法好!
include<bits/stdc++.h> //文件头
using namespace std;
string a; //定义字符串
int main()
{cin>>a; //输入reverse(a.begin(),a.end()); //反转cout<<a; //输出return 0; //养成好习惯
}
3
对于数字不要求运算的处理,我们基本都可以使用 字符串 来解决。
那么讲一下基本思路:
首先读入一个字符串(为了方便使用string
)
接着,获取其长度,即使用 str.size()
的方法,当中 str
是字符串的变量名,这个函数会返回一个值,即字符串的长度
注意,字符串的长度比起他的最大下标(index)
是要大 1 的,所以倒序输出是要注意。同理,第一个字符的下标是 0 。
那么代码基本架构出来了,我们看以下代码:
#include<bits/stdc++.h>
using namespace std;
string a;
int main()
{cin>>a;for(int i=a.size()-1;i>=0;i--)cout<<a[i];return 0;
}
利用for循环,整体代码思路比较清晰。
同时,也可以使用字符数组,即char[]
类型,但是要注意的是这种方法取得字符串长度的函数是strlen(str)
。
Python
读取输入:使用input()
函数读取用户输入的浮点数,并将其存储为字符串num_str
。
反转字符串:利用Python
字符串切片的特性 [::-1]
对字符串进行反转操作,得到反转后的字符串reversed_str
。
输出结果:将反转后的字符串转换为浮点数,并使用 print()
函数输出。
# 读取输入的浮点数
num_str = input()
# 反转字符串
reversed_str = num_str[::-1]
# 将反转后的字符串转换为浮点数并输出
print(float(reversed_str))
JAVA
因为是将整体都反转,而不是部分反转,不涉及到0的处理,所以直接读取为字符串,按照单个字符逆序输出即可。
读取字符串中的单个字符(敲黑板)
str.charAt(int);
import java.util.Scanner;
public class p5705 {public static void main(String[] args) {Scanner read = new Scanner(System.in); //实例化ScannerString s = read.next(); //读取for(int x0 = s.length()-1;x0>=0;x0--) { //读取字符串长度,因为是0~(n-1),所以需要-1防止越界。由最后一个到第一个(0)。System.out.print(s.charAt(x0)); //读取单个字符,输出}read.close(); //关闭Scanner}
}
梦想可以大,第一步总是小的!