回 帖 发 新 帖 刷新版面

主题:组合排序....大家帮帮忙...在线等....

3.输入一个三位数的整数,将数字位置重新排列,组成一个尽可大的三位数。例如:输入 213,重新排列可得到尽可能大的三位数是321。

回复列表 (共7个回复)

沙发

排个序不就行了。

板凳

这个应该比较简单嘛,比输出最小的数要容易.
算法如下:用字符串储存输入的数,然后排个序就完了.如果是输出最小值还要考虑首位不能为零.具体代码还是留给你自己想想吧,呵呵!

PS:字符之间可以直接用< 、 > 、 >= 、 <=等符号作比较,实际上就是比较的ASCII码值.

3 楼

恩,直接用字符判也可以的

4 楼

var
  s:string;t:char;
  i,j:integer;
begin 
  readln(s);
  for i:=1 to 2 do 
    for j:=i+1 to 3 do 
      if s[i]<s[j] then 
        begin 
          t:=s[i];
          s[i]:=s[j];
          s[j]:=t;
        end;
  writeln(s);
end.

5 楼

其实就是读入一个数以后
对每位数字进行排序
把ASCII码大的数字(也就是数值大)往前调
达到改变的目的

6 楼

不对,楼上的程序还需完善
还应该考虑一下2楼 游侠UFO 说的问题:首位不能为0

7 楼

[quote]不对,楼上的程序还需完善
还应该考虑一下2楼 游侠UFO 说的问题:首位不能为0[/quote]

楼主问的是找最大的情况,零始终都是最小的,所以不会出现首位为零的情况,这只可能在找最小的情况中出现.

我来回复

您尚未登录,请登录后再回复。点此登录或注册