题目的意思是说输入一个数如48318,那么输出它的最大数即88431
我现在的算法是:
static int makemax(int n)
{
string[] numstr = new string[Convert.ToString(n).Length];
string num = "";
for (int i = 0; i <= Convert.ToString(n).Length - 1; i++)
{
numstr[i] = (Convert.ToString(n)[i]).ToString();
}
Array.Sort(numstr);
Array.Reverse(numstr);
for (int i = 0; i <= Convert.ToString(n).Length - 1; i++)
{
num += numstr[i];
}
return Convert.ToInt32(num);
}
但总感觉这种方法效率很低,请教优化的方法
我现在的算法是:
static int makemax(int n)
{
string[] numstr = new string[Convert.ToString(n).Length];
string num = "";
for (int i = 0; i <= Convert.ToString(n).Length - 1; i++)
{
numstr[i] = (Convert.ToString(n)[i]).ToString();
}
Array.Sort(numstr);
Array.Reverse(numstr);
for (int i = 0; i <= Convert.ToString(n).Length - 1; i++)
{
num += numstr[i];
}
return Convert.ToInt32(num);
}
但总感觉这种方法效率很低,请教优化的方法
解决方案 »
- Tool ComboBox的问题
- 在C#里调用vc写的动态连接库 下面几个函数 怎么在c#里声明调用 高分求助!!!
- 发现一处C#自相矛盾的概念的地方~
- VS2005安装问题
- 在一个类中要表式一个值,什么情况下用属性,什么情况下用方法来返回值?
- [求助]WPF 根据用户输入添加button控件或Ellipse
- .net 打印(有那种方法可以支持所有的打印机)
- 才发现C#不是表达式语言,而C++是。
- 窗体中有一个按键控件,button_Click { ..., this.Tag是指窗体还是控件
- 更新数据镇的那么的难吗?
- 请问有谁知道哪里可以下载到wwf的帮助文档么?
- DataSet和xsd的问题
{
int result = 0;
char[] nums = n.ToString().ToCharArray();
Array.Sort(nums);
for (int i = nums.Length-1; i >=0; i--)
{
result = result * 10 +int.Parse( nums[i].ToString());
}
return result;
}
{
// 排除负数的情况
if (value < 0)
throw new ArgumentOutOfRangeException("value");
// 一共才1位,直接返回
if (value < 10)
return value;
// value的最大值是2G-1,也就是最多10位数
int[] buf = new int[10];
int count = 0;
while (value>0)
{
buf[count++] = value % 10;
value /= 10;
}
Array.Sort(buf, 0, count);
int result = 0;
for (int i = count - 1; i >= 0; i--)
{
checked //可能会溢出,例如输入1111111119
{
result *= 10;
result += buf[i];
}
}
return result;
}