เขียนฟังก์ชั่น (หรือโปรแกรมย่อยเทียบเท่า) เพื่อยอมรับอาร์กิวเมนต์ค่าจำนวนเต็มเดี่ยวและส่งกลับค่า (พิมพ์คล้ายกัน) ที่พบโดยการกลับคำสั่งของตัวเลขฐาน 10 ของอาร์กิวเมนต์
ตัวอย่างเช่นได้รับ 76543 ผลตอบแทน 34567
เขียนฟังก์ชั่น (หรือโปรแกรมย่อยเทียบเท่า) เพื่อยอมรับอาร์กิวเมนต์ค่าจำนวนเต็มเดี่ยวและส่งกลับค่า (พิมพ์คล้ายกัน) ที่พบโดยการกลับคำสั่งของตัวเลขฐาน 10 ของอาร์กิวเมนต์
ตัวอย่างเช่นได้รับ 76543 ผลตอบแทน 34567
คำตอบ:
‮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
นี่คืองูหลาม แต่มันสามารถทำได้ในภาษาใด ๆ เพราะมันเป็นเพียงวิธีการทางคณิตศาสตร์
mod
ด้วย%
ก็ถูกต้องหลาม;)
y=y*10+x%10
....
+$n.flip
หรือ:
$n.flip
สำหรับรหัสที่พิมพ์แบบไดนามิก
ตัวเลขมีวิธีสตริงเนื่องจากการออกแบบภาษา
".|.":y
คุณค่าของคุณอยู่ที่ไหน
|.&.":
"reverse under do" ซึ่งเป็นงานแปลตามตัวอักษร
⍎⌽⍕
การใช้งาน:
⍎⌽⍕12345 => 54321
(int)strrev(123);
วิธีทำให้สั้นโดยที่N
ค่าคงที่:
strrev(N)
โปรแกรมที่รันได้สมบูรณ์:
N.@
N
หมายเลขของคุณอยู่ที่ไหน กฎบอกว่า "ยอมรับการโต้แย้งค่าจำนวนเต็ม "; ใน Befunge คุณสามารถป้อนจำนวนเต็มตั้งแต่ 0 ถึง 9 เท่านั้น
แรงบันดาลใจจากคำตอบของคิริลคิรอฟข้างต้น ฉันอยากรู้เกี่ยวกับคุณสมบัติทางคณิตศาสตร์ของการกลับจำนวนดังนั้นฉันตัดสินใจที่จะตรวจสอบเล็กน้อย
ปรากฎว่าคุณพล็อตความแตกต่างn - rev(n)
ของจำนวนธรรมชาติn
ในบางฐานr
คุณจะได้รูปแบบเช่นนี้ ( (n - rev(n)) / (r - 1)
สำหรับการr=10
พันที่r
คอลัมน์สีแดงหมายถึงจำนวนลบ):
ลำดับนี้สามารถสร้างขึ้นได้เช่น (pseudocode):
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: th ตามลำดับเพื่อที่เราจะได้มีการแสดงออกในรูปแบบปิดเพื่อแก้ปัญหาทั้งหมด น่าเสียดายที่ฉันไม่สามารถค้นหานิพจน์ดังกล่าว ... แต่ดูเหมือนว่าควรจะเป็นไปได้ :(
ดังนั้นใช่ไม่มากนักกอล์ฟรหัสเป็นความอยากรู้ทางคณิตศาสตร์ แต่ถ้ามีการแสดงออกในรูปแบบปิดของลำดับข้างต้นมันอาจจะมีประโยชน์ในการส่งกอล์ฟ PL ที่เหมาะสม
f=read.reverse.show.(+0)
f=read.reverse.show.(+0)
ล่ะ
(+0)
: มนุษย์ที่ถูกกฎหมาย! แม้ว่าในทางเทคนิคแล้วคุณไม่ต้องการใช้.(+0)
เลย แต่f
จะมีความหลากหลายมากกว่าปัญหาที่ต้องการ (อนุญาตให้ส่งคืนเอาต์พุต 'พิมพ์คล้ายกัน') ฉันจะโกนตัวละครทั้งห้าออกไป
:se ri<CR>C<C-R>"
x = 13456
x.to_s.reverse
.to_s.reverse.to_i
ปฏิบัติตามข้อกำหนด
เป็นไปได้ที่จะแปลงจำนวนสตริงจากนั้นย้อนกลับสตริงแล้วแปลงสตริงนั้นกลับเป็นตัวเลข คุณสมบัตินี้มีให้บริการในทุกภาษา หากคุณกำลังมองหาวิธีการทางคณิตศาสตร์มากกว่านี้อาจช่วยได้:
int n = 76543;
int r = 0;
while (n > 0) {
r *= 10;
r += n % 10;
n /= 10;
}
1111111119
r=lambda i:int(str(i)[::-1])
print(input()[::-1])
ฉันคิดว่าตัวอย่างงูหลามอื่น ๆ ที่จะโกงหรืออย่างน้อยราคาถูกเนื่องจากการใช้อินพุต hardcoded และ / หรือไม่ตรงตามข้อกำหนดทั้งหมด
`-1%~
สิ่งนี้รับอาร์กิวเมนต์บนสแต็กและปล่อยให้ผลลัพธ์บนสแต็ก ฉันใช้ประโยชน์จากตัวเลือก "โปรแกรมย่อย" ใน spec: หากคุณยืนยันในฟังก์ชั่นนั่นคือตัวอักษรสี่ตัวที่เหลือไว้ใน stack:
{`-1%~}:r
`-1%~
มากกว่า`-1$~
(และฉันมีเสรีภาพในการแก้ไขคำตอบของคุณเพื่อพูดเช่นนั้น)
ในการเขียนสคริปต์เชลล์:
echo "your number"|rev
หวังว่านี่จะเป็นประโยชน์ :)
rev<<<yournumber
เช่นrev<<<132
(สำหรับ bash / zsh ไม่ใช่ POSIX ต่อแม้ว่า)
rev
เป็นพอคำถามที่ไม่ได้บอกว่ามันมีจะเป็นฟังก์ชั่น คุณสามารถเปรียบเทียบrev
กับฟังก์ชันในตัวแม้ว่าจะไม่ใช่ฟังก์ชัน
ค่อนข้างจะสาย แต่
⍎⌽⍞
หากคุณยืนยันในฟังก์ชั่น
⍎∘⌽∘⍕
IntegerReverse
นี่ไม่ใช่การแข่งขันเพราะฟังก์ชั่นนี้เพิ่มเฉพาะในรีลีส 10.3 สัปดาห์ที่แล้ว แต่เพื่อความสมบูรณ์ฉันคิดว่าฉันจะเพิ่มบิวด์อิน (ฉันคิดว่า?) ในตัวสำหรับงานนี้
คุณสามารถทำสิ่งต่อไปนี้ใน Java โปรดทราบว่าสิ่งนี้จะแปลงเป็นสตริงและย้อนกลับและไม่ใช่โซลูชันทางคณิตศาสตร์
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));
}
}
ตัวเลขและสตริงสามารถใช้แทนกันได้ดังนั้นนี่จึงเป็นเรื่องเล็กน้อย
string.reverse(12345)
อันนี้จริง ๆ แล้วใช้อินพุตไม่เหมือนส่วนที่เหลือ:
print`input()`[::-1]
Python btw
43 ตัวอักษร NUM เป็นพารามิเตอร์ของฟังก์ชัน:
num.toString().split('').reverse().join('')
r={"$it".reverse() as BigDecimal}
assert r(1234) == 4321
assert r(345678987654567898765) == 567898765456789876543
assert r(345346457.24654654) == 45645642.754643543
#(->> % str reverse(apply str)read-string)
ตัวอย่างการใช้งาน:
(#(->> % str reverse(apply str)read-string) 98321)
ส่งคืน 12389
(first(list(parse-integer(reverse(write-to-string '4279)))))
คุณจะได้รับ 9724
(first(list
? parse-integer
ส่งคืนหมายเลขแล้ว
.|$
หาค่า ( .
) reverse ( |
) ของการร่ายไปที่ string ( $
)
ตัวอย่างการใช้งาน:
.|$76543
34567
#
+#(.*)(.)/\2#\1
#/
ในทางเทคนิคแล้วสิ่งนี้ไม่นับ (อาร์เอสถูกสร้างขึ้นเมื่อต้นปีนี้) แต่ฉันไม่เห็นคำตอบที่อิงจาก regex อื่น ๆ และฉันคิดว่านี่เป็นระเบียบ
#
แทรกอักขระปอนด์ที่จุดเริ่มต้นของสตริง สิ่งนี้ใช้เป็นเครื่องหมาย
+#(.*)(.)/\2#\1
เพิ่มอักขระตัวสุดท้ายของสายอักขระหลักอย่างต่อเนื่องไปยังพื้นที่หน้าเครื่องหมายจนกระทั่งไม่มีตัวอักษรเหลืออยู่
#/
ลบเครื่องหมาย
$regsubex(12,/(.)/g,$mid(\A,-\n,1))