题目很简单,完成函数reverse,要求实现把给定的一个整数取其相反数的功能,
举两个例子如下: x = 123, return 321 x = -123, return -321
概述:拿到题目后我没看清楚用什么语言写就直接上手了,
我是一位java man 在校生 目前不会c++ 对c 也不太熟,就直接用java上手了、、、、以至于、、
我看到题后 第一反应 是用数组来做
先将 int型的 数 转换成String 字符串 然后 将其转换成char【】 arr 数组 进行 逆置、、
当然 要分为 有“-”和没有“-”的情况
1、有“-”的时候将只是逆置时的 位置变一下 即 原来是 从arr【0】开始 现在 从arr【1】开始罢了
2、没有“-”的时候 跟平时的 数组的 逆置一样
注:我是传入的参数 是int 整数 返回的参数 是个String 类型的 字符串
大家 有兴趣 就看下代码吧
虽然不是很成熟 但对于菜鸟的我,它也是我成长的脚步、、谢谢您的光顾、、欢迎您来指点、、
public class Zsqf {
public static String run(int a){
String str=String.valueOf(a);
char x;
char [] arr=new char[str.length()];
for(int i=0;i<str.length();i++){
arr[i]= str.charAt(i);
}
int n=str.length();
if('-'==arr[0]){
n=n-1;
if(n%2!=0){
for(int j=1;j<n/2+1;j++)
{
x=arr[j];
arr[j]=arr[n-j+1];
arr[n-j+1]=x;
}
}else{
for(int j=1;j<n/2+1;j++)
{
x=arr[j];
arr[j]=arr[n-j+1];
arr[n-j+1]=x;
}
}
StringBuffer aa=new StringBuffer();
for(int i=0;i<n+1;i++){
aa.append(arr[i]);
}
String xx=aa.toString();
return xx;
}else{
if(n%2==0){
for(int j=0;j<n/2;j++)
{
x=arr[j];
arr[j]=arr[n-1-j];
arr[n-1-j]=x;
}
}else {
for(int j=0;j<n/2;j++)
{
x=arr[j];
arr[j]=arr[n-1-j];
arr[n-1-j]=x;
}
}
}
StringBuffer aa=new StringBuffer();
for(int i=0;i<n;i++){
aa.append(arr[i]);
}
String xx=aa.toString();
return xx;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(run(-12345));
}
}
现在算法 实现了 可以将一个整数逆置 但返回的是以个 String 字符串 有待改正下、、、
下图是 运行效果: