lzx2871 2010-05-07 17:52
浏览 214
已采纳

一道求数程序题,求最高效率。

随便输入一个整数,输出第一个比它大的数。

比如123 下一个就是132 再者就是312

只要找出下一个即可

如果自己本身是最大的,则自动填零。比如987,则输出9870

能处理1到十位之间的数(要求高效率的)

  • 写回答

4条回答 默认 最新

  • qwe_rt 2010-05-09 10:38
    关注

    部分伪代码实现,接下来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

    }[/code]

    代码实现请看:
    http://www.iteye.com/problems/38009

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 想用@vueuse 把项目动态改成深色主题,localStorge里面的vueuse-color-scheme一开始就给我改成了dark,不知道什么原因(相关搜索:背景颜色)
  • ¥20 OPENVPN连接问题
  • ¥15 flask实现搜索框访问数据库
  • ¥15 mrk3399刷完安卓11后投屏调试只能显示一个设备
  • ¥100 如何用js写一个游戏云存档
  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计