编写一个函数(或等效子程序)以接受单个整数值的参数,并返回通过反转参数的以10为基数的顺序而找到的(相似类型的)值。
例如给定76543返回34567
编写一个函数(或等效子程序)以接受单个整数值的参数,并返回通过反转参数的以10为基数的顺序而找到的(相似类型的)值。
例如给定76543返回34567
Answers:
‮n
n
用您的电话号码代替
Your search -
-与任何文档都不匹配。
data:text/html,&%238238;egnahcxEkcatS olleH
蟒蛇
int(str(76543)[::-1])
编辑:
@gnibbler建议的较短解决方案:
int(`76543`[::-1])
或者,如果以上不清楚:
x=76543
int(`x`[::-1])
s[::-1]
比''.join(reversed(s))
通用(与语言无关/独立)
如果您想使用只有数字(避免转换为字符串的数字)和不希望使用一些特定的库(被普遍用于任何语言):
x = 76543 # or whatever is your number
y = 0
while x > 0:
y *= 10
y += ( x %10 )
x /= 10 # int division
这是python,但是可以用任何语言完成,因为它只是一种数学方法。
mod
为%
,则表示它是有效的Python;)
y=y*10+x%10
....
完整的可运行程序:
N.@
N
你的电话号码在哪里。规则说“接受单个整数值的参数”;在Befunge中,您只能输入0到9之间的整数。
受到上述Kiril Kirov的回答的启发。我对反转数字的数学性质感到好奇,因此我决定进行一些研究。
事实证明,如果您在某个基数中绘制n - rev(n)
自然数的差,则会得到如下所示的模式(,为,包裹在列中,红色表示负数):n
r
(n - rev(n)) / (r - 1)
r=10
r
该序列可以这样生成(伪代码):
for i=1 to r:
output 0
for m=0, 1, …
for k=1 to (r-1):
for d=1 to r^m:
for i=0 to (r-1):
output (r-1) * (r+1)^m * (k - i)
如果您将这些值存储在列表/数组中,n - arr[n]
则会得到相反的形式n
。现在,为了“数学上打高尔夫球”,理想情况下,我们需要一个闭合形式的表达式,该序列在序列中给出第n个值,以便我们可以使用一个闭合形式的表达式来解决整个任务。不幸的是,我还没有找到这样的表达……但是看起来它应该是可能的。:(
是的,不是数学上的好奇心而是代码高尔夫球,但是如果上述序列有一个封闭形式的表达,那么它实际上可能对正确的PL高尔夫球比赛很有用。
f=read.reverse.show.(+0)
f=read.reverse.show.(+0)
样
(+0)
:合法的人!尽管从技术上讲您根本不需要.(+0)
,因为f
它比问题所需要的多态的多态(允许返回“相似类型”的输出)。我会刮掉那五个字符。
可以将数字转换为字符串,然后反转该字符串,然后将该字符串转换回数字。这种功能可能在所有语言中都可用。如果您正在寻找一种更数学的方法,那么这可能会有所帮助:
int n = 76543;
int r = 0;
while (n > 0) {
r *= 10;
r += n % 10;
n /= 10;
}
1111111119
`-1%~
这在堆栈上接受一个参数,并将结果留在堆栈上。我正在使用规范中的“子程序”选项:如果您坚持使用某个函数,则需要再增加四个字符,才能将其保留在堆栈中:
{`-1%~}:r
`-1%~
不是故意的`-1$~
(我已经自由地编辑您的回答这样说)。
在shell脚本中:
echo "your number"|rev
希望这是有用的:)
rev<<<yournumber
,例如rev<<<132
(对于bash / zsh,但不是按POSIX)
rev
够,问题不说,它已成为一个功能。您可以将rev
其与内置函数进行比较,即使它不是一个。
金田晚了但是
⍎⌽⍞
如果你坚持一个功能
⍎∘⌽∘⍕
您可以使用Java执行以下操作。请注意,这将转换为String并返回,而不是数学上的解决方案。
public class test {
public static int reverseInt(int i) {
return Integer.valueOf((new StringBuffer(String.valueOf(i))).reverse().toString());
}
public static void main(String[] args) {
int i = 1234;
System.out.println("reverse("+i+") -> " + reverseInt(i));
}
}
43个字符。num作为函数的参数:
num.toString().split('').reverse().join('')
p
要使此功能起作用,需要包含该标志,该标志包括在计数中。
用法:
$ echo 76543 | perl -pE '$_=reverse'
p
标志被包括在计数
(first(list(parse-integer(reverse(write-to-string '4279)))))
将为您提供9724。
(first(list
呢 parse-integer
已经返回了数字。
#
+#(.*)(.)/\2#\1
#/
从技术上讲,这不算数(rs是在今年早些时候创建的),但是我没有看到其他基于正则表达式的答案,我认为这很简洁。
#
在字符串的开头插入井号。这用作标记。
+#(.*)(.)/\2#\1
连续将主字符串的最后一个字符放在标记之前的区域,直到没有剩余字符为止。
#/
删除标记。