我的代码输出不符合预期
我试着回答了 Geektime挑战中的第三个问题
这是我的代码:
public class HelloWorld
{
public static int Rec(int num1,int num2)
{
if(num1<10&&num2<10)
{
if(num1==num2)
return 0;
if(num1==Math.Max(num1,num2))
return 1;
return 2;
}
if(num1>10)
num1/=10;
if(num2>10)
num2/=10;
return Rec(num1,num2);
}
public static void SortMe(int[] arr)
{
for(int i=0;i<arr.Length-1;i++)
{
int check=Rec(arr[i],arr[i+1]);
int temp1=arr[i];
int temp2=arr[i+1];
while(check==0&&(temp1>10||temp2>10))
{
if(temp1>10)
temp1%=10;
if(temp2>10)
temp2%=10;
check=Rec(temp1,temp2);
}
if(check==2)
{
int temp3=arr[i];
arr[i]=arr[i+1];
arr[i+1]=temp3;
}
}
}
public static void MaxNumber(int[] arr)
{
SortMe(arr);
for(int i=0;i<arr.Length;i++)
Console.Write(arr[i]);
}
public static void Main(string[] args)
{
//Console.WriteLine ("Hello Mono World");
int[] arr=new int[4];
arr[0]=50;
arr[1]=9;
arr[2]=188;
arr[3]=97;
MaxNumber(arr);
}
}
输出应该是:99750188,但它是:95097188。 为什么?我的代码有什么问题??