我必须制作一个程序,我必须将十进制系统中的数字转换为另一个数字(以 2 为底到 9),就像我的第一个问题一样。
但这一次我必须使用递归函数来实现。所以我来了:
function cambiarBase(n,b: integer): string;
Begin
if n < b then
cambiarBase := inttostr(n)
else
cambiarBase := inttostr(n mod b) + cambiarBase(n div b, b);
End;
它需要 2 个整数变量,“n”是十进制数,“b”是基数,并返回一个带有转换后数字的字符串。在按钮过程中,我在 TMemo 中显示数字
memo1.Lines.Add(cambiarBase(n,b));
我遇到的问题是:使用函数的方式以相反的顺序给出数字(例如,基数 9 中的 301 是 364,但它显示为 463)。但是,如果我在 if 语句之后使用 ReverseString 函数,那么它会以不同的顺序显示数字(在示例中,数字现在是 634)。
但是,如果我在 memo1.Lines.Add (函数外部)应用 ReverseString 函数,那么它会显示正确的转换。
我想知道如何让它通过函数本身返回正确的数字顺序。
该程序编译它没有任何错误。
再次感谢您的阅读。
利奥AM