当前位置: 首页 > ds >正文

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

数字反转

题目描述

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

输入格式

一行一个浮点数

输出格式

一行一个浮点数

输入输出样例 #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,这个类型相当于cchar[],和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}
}

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

http://www.xdnf.cn/news/3826.html

相关文章:

  • (38)VTK C++开发示例 ---纹理裁剪
  • C++负载均衡远程调用学习之异步消息任务功能与连接属性
  • CVPR2021 | 重新思考视觉Transformer中的自注意力机制
  • Java学习手册:Spring 生态其他组件介绍
  • 单细胞测序试验设计赏析(一)
  • AWS在跨境电商中的全场景实践与未来生态构建
  • D. 例题3.2.2 整数划分问题
  • 二种MVCC对比分析
  • 学习黑客风险Risk
  • iOS启动优化:从原理到实践
  • 2025年渗透测试面试题总结-拷打题库35(题目+回答)
  • 【C++】:C++17新特性
  • Vivado FPGA 开发 | 创建工程 / 仿真 / 烧录
  • 2845. 统计趣味子数组的数目
  • 【LLaMA-Factory实战】Web UI快速上手:可视化大模型微调全流程
  • The Sims 4 模拟人生 4 [DLC 解锁] [Steam Epic EA] [Windows SteamOS]
  • 《操作系统真象还原》第十二章(2)——进一步完善内核
  • 影刀RPA中新增自己的自定义指令
  • UDP网络编程
  • Xilinx FPGA | 管脚约束 / 时序约束 / 问题解析
  • 安卓基础(悬浮窗)
  • Java中深拷贝与浅拷贝的深入探讨
  • C++类_虚基类
  • IDEA快速上手Maven项目:模板选择 + 多模块拆分
  • Spring Boot 微服务打包为 Docker 镜像并部署到镜像仓库实战案例
  • 合成复用原则(CRP)
  • IDEA回滚代码操作
  • Windows下调试WebRTC源码
  • BOSS的收入 - 华为OD机试(A卷,C++题解)
  • 昇腾的昇思MindSpore是什么?跟TensorFlow/PyTorch 等第三方框架有什么区别和联系?【浅谈版】