随便输入一个整数,输出第一个比它大的数。
比如123 下一个就是132 再者就是312
只要找出下一个即可
如果自己本身是最大的,则自动填零。比如987,则输出9870
能处理1到十位之间的数(要求高效率的)
随便输入一个整数,输出第一个比它大的数。
比如123 下一个就是132 再者就是312
只要找出下一个即可
如果自己本身是最大的,则自动填零。比如987,则输出9870
能处理1到十位之间的数(要求高效率的)
部分伪代码实现,接下来Lz锻炼锻炼coding :D :D :D
[code="java"]
public class Util(){
public int parse(int argInput){
//将整数单个分解存于数组arr中。
String str = argInput+"";
int length =str.length();
int[] arr = new int(length );
for(int i = 0;i<length;i++){
arr[i]=Integer.parseInt(str.substring(i,i+1));
}
int index = length -1;
while(index==0){//从数的最后一位开始,查找前一位比一位小的数。
if(arr[index]>arr[--index])break;
}
if(index==0){//添加一个0,处理.这中情况如“321”
//将0放在数组的第二个位置,数组的第一个位置放原来数值中的最小数,比如321中的“1”
//这是数组为“1 0 ..”
...
//数组第二个位置后面的数从小到大排列。
...
}else{//不添加0 这种情况如“2563”
//将index位置的值与index-1的值互换。如将6与5互换,“2653”。
...
//将index后面(包含index位置)的数值从小到大排列。这时将“5 3”从小到大排列。
...
}
///将int数组arr各个数值按顺序生成一个整数。返回所需要的值。
}//end parse