我想问一下如何重新排序数字,Int32这样就可以得到最大的数字.这是一个可视化我想要做的事情的例子:
2927466 -> 9766422
12492771 -> 97742211
Run Code Online (Sandbox Code Playgroud)
我想在不使用System.Linq命名空间的情况下执行数字的排序,而不将整数转换为字符串值.这是我到目前为止所得到的:
public static int ReorderInt32Digits(int v)
{
int n = Math.Abs(v);
int l = ((int)Math.Log10(n > 0 ? n : 1)) + 1;
int[] d = new int[l];
for (int i = 0; i < l; i++)
{
d[(l - i) - 1] = n % 10;
n /= 10;
}
if (v < 0)
d[0] *= -1;
Array.Sort(d);
Array.Reverse(d);
int h = 0;
for (int i = 0; …Run Code Online (Sandbox Code Playgroud) 如何使用 Delphi 的内联汇编器获取数字的位数?
例如 :
13452 should return 5
1344 should return 4
9721343 should return 7
Run Code Online (Sandbox Code Playgroud)
等等
我的尝试是这样的:
function CalculateLength(Number : integer) : Integer;
begin
asm
PUSH Length(Number)
MOV @Result, EAX
end;
end;
Run Code Online (Sandbox Code Playgroud)