算法每日一题 | 入门-顺序结构-数字反转

数字反转

题目描述

输入一个不小于 且小于 ,同时包括小数点后一位的一个浮点数,例如 ,要求把这个数字翻转过来,变成 并输出。

输入格式

一行一个浮点数

输出格式

一行一个浮点数

输入输出样例 #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 代码:

c 复制代码
#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()

利用这一特性,我们可以得到核心代码:

c 复制代码
printf("%c%c%c%c%c", getchar(), getchar(), getchar(), getchar(), getchar());

C++

1

我们先来认识一下c++的字符串string,这个类型相当于cchar[],和char一样,string也可以用数组表示多个字符串,即string a[]。接下来看看常见的几个string类型操作:

c 复制代码
string a;//定义一个string类字符串。
int len=a.size()//读取串a的长度,注意此时a中字符下标是从0开始的。

有了这些,我们便可以反转了!

c 复制代码
#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大法好!

c 复制代码
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 。

那么代码基本架构出来了,我们看以下代码:

c 复制代码
#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() 函数输出。

python 复制代码
# 读取输入的浮点数
num_str = input()
# 反转字符串
reversed_str = num_str[::-1]
# 将反转后的字符串转换为浮点数并输出
print(float(reversed_str))

JAVA

因为是将整体都反转,而不是部分反转,不涉及到0的处理,所以直接读取为字符串,按照单个字符逆序输出即可。

读取字符串中的单个字符(敲黑板)

str.charAt(int);

java 复制代码
import java.util.Scanner;
public class p5705 {
     public static void main(String[] args) {
          Scanner read = new Scanner(System.in); //实例化Scanner
          String 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
       }
}

梦想可以大,第一步总是小的!

相关推荐
SuperHeroWu71 个月前
【HarmonyOS 5】初学者如何高效的学习鸿蒙?
学习·华为·harmonyos·鸿蒙·入门·初学者·学习思路
holeer2 个月前
《Python基础教程》第9章笔记:魔法方法、特性和迭代器
开发语言·笔记·python·教程·入门
jingxindeyi3 个月前
electron 学习
electron·入门
Rossy Yan4 个月前
【C语言程序设计——入门】C语言入门与基础语法(头歌实践教学平台习题)【合集】
c语言·开发语言·入门·头歌实践教学平台·合集
valkyrja1105 个月前
aws 小白入门,VPC 子网、路由表、互联网网关
aws·入门·vpc·路由表·子网·互联网网关
氦客6 个月前
HarmonyOS入门 : 获取网络数据,并渲染到界面上
http·华为·harmonyos·开发·入门·鸿蒙next·获取网络数据
&&Citrus6 个月前
【Petri网导论学习笔记】Petri网导论入门学习(五)—— 1.3 库所/变迁系统与加权Petri网
笔记·学习·入门·petri网
&&Citrus6 个月前
【Petri网导论学习笔记】Petri网导论入门学习(八) —— 1.6 系统的Petri网模型
笔记·学习·入门·petri网
凌3047 个月前
字符串和字符数组
c语言·笔记·其他·入门