java算法int型整数反转的另类解法
要求:输入一个int型整数,将这个整数中每位上的数字进行反转(除福符号位外)输出,若反转后的数字超过了int型范围,则输出0;
如:12340--------4321 -1234-----------(-4321)
方案:1.首先从键盘输入一个int型整数num;
2.取绝对值con = Math.abs(num),得到正数con;
3.将正数con转换为字符串str = String.valueOf(con);
4.再将字符串转换为字符型数组char[] charArray = str.toCharArray();
5通过公式.res = ((long) charArray[i - 1] - 48) * (long) (Math.pow(10.0, n)) 获得每一位上的数
程序如下:
package cn.leetcode;
import java.util.Scanner;
public class reverse1 {
public static void main(String[] args) {
System.out.println("请输入一个int数值");Scanner sc = new Scanner(System.in);int num = sc.nextInt(); //由键盘获得一个int型整数int con = Math.abs(num); //取绝对值String str = String.valueOf(con); //将正数转换为字符串char[] charArray = str.toCharArray();//转换为字符型数组long res = 0;int rev;for (int i = str.length(); i > 0; i--) {double n = (double) (i - 1);res = ((long) charArray[i - 1] - 48) * (long) (Math.pow(10.0, n)) + res;} //求反转后的数值if (num < 0) { //判断正负res = -res;}//判断有没有超过范围if (res > (long) (Math.scalb(-1.0, 31)) && res < (long) ((Math.scalb(1.0, 31))) - 1) {rev = (int) res;System.out.println(rev);} else {rev = 0;System.out.println(rev);}
}
}
执行结果:
请输入一个int数值
-783729
-927387
执行结果:
请输入一个int数值
-367290
-92763
java算法int型整数反转的另类解法相关推荐
- atoi函数:c\c++中把字符串整数转换为int型整数
atoi函数:c\c++中把字符串整数转换为int型整数 atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中.atoi( ) ...
- Java语言int型与byte型数组的转换
为了在接下来的篇章中讲解用Java实现文件的归档和解归档,需要先了解一下Java中int型与byte型数组之间的相互转换. 首先,我们先来看看int型转换成byte型数组. 我们知道,Java中,一个 ...
- java 的long型整数的最大值
java 的long型整数的最大值:9223372036854775807,即19位十进制数 64位二进制数 16位16进制数
- int型整数的数值范围
假设int型用两个字节表示对于有符号的整数,用补码表示的话,最高位是符号位,后面15位用来表示数据.1.正数,表示的范围为0000 0000 0000 0001-0111 1111 1111 1111 ...
- Java中int型如何求幂_关于java:为什么Math.pow(int,int)慢于我的幼稚实现?
昨天我看到一个问题,问为什么Math.pow(int,int)这么慢,但是问题措辞不佳,没有进行任何研究,因此很快就关闭了. 我做了一些自我测试,发现与整数参数相比,Math.pow方法实际上比我自己 ...
- Java算法罗马数字转整数
本文章只提供算法. 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X ...
- Java返回int型的空值_使用MyBatis查询int类型字段,返回NULL值时报异常的解决方法...
当配置mybatis返回int类型时 select id="getUserIdByName" parameterType="string" resultType ...
- int型整数的最小值和最大值是多少(精确值)
int main() { /*int n = 0, i = 0;while (n >= i){n = i;i--;}printf("%d", n);*/ //-2147483 ...
- int型整数的最大值和最小值是多少
#include<stdio.h> int main(){int n=0;int i=0;while(n<=i){n=i;i++;}printf("int最大值为:%d\n ...
最新文章
- “.Net 社区虚拟大会”(dotnetConf) 2016 Day 3 Keynote: Scott Hanselman
- Win10如何取消开机密码
- 边缘检测(5)Canny算法
- jzoj3509-倒霉的小C【gcd,欧拉函数】
- linux离线安装docker,centos离线安装docker
- c语言成绩等级switch语句,请高手 帮忙做一道c语言题 编程,把百分制成绩转换成5级记分制,要求用switch语句。 90分以上(包括90):...
- redis缓存穿透,缓存击穿与缓存雪崩详解
- python列表初始化长度_在Python中预先初始化列表内容和长度的实现
- Helloworld之Spring依赖注入/控制反转(DI/IoC)版
- 每一个写博客的程序猿,都应该被温柔对待
- FogROS2 使用 ROS 2 的云和雾机器人的自适应和可扩展平台
- RK3566触屏旋转方向
- 尊敬的用户您好: 您访问的网站被机房安全管理系统拦截,可能是以下原因造成: 1.您
- 工业元宇宙三人行系列直播活动第五场在北京举办
- 主机序、网络序的理解
- 三星获欧洲专利居业内之首 中兴首次进入前十
- Android 创建 文件 和 文件夹
- 云服务案例分析 BB平台 Quiz3
- 软件设计一点通 | 抽象文档模式详解
- 微信小程序分包后主包依旧过大
热门文章
- ipad协议最新替代
- 2022哈工大(深圳)计算机854考研经验贴|双非跨考|初试367 复试293
- HTTP断点续传以及缓存问题
- Proteus8.9 VSM Studio WINAVR编译器仿真ATmega16系列a19_DS18B20_LCD1602
- Matplotlib 实战总结,超全!超长!
- 惠普g7服务器硬盘阵列,HP DL388 G7 服务器重新做RAID
- 买台式计算机什么指标的好,购买电脑时,只要你了解了这几个参数,就能保证不被坑...
- Math.hypot()
- 简述卡西欧5800p计算机,fx5800p
- 山东大学计算机专业知名教授,胡思煌 山东大学主页平台管理系统--胡思煌