จริงๆมันก้ไม่ยากเกินกำลังนายหรอก ลองคิดดู
อย่างตัวแรกเราอยากได้ตัว "u"ใช่ป่ะ code มันคือ 116 เพราะเค้าบอกว่า z = 122 ลองไล่ดูก้ได้
ทีนี้ถ้าอยากได้ 116 เราก้ต้องหาว่า ต้องใส่ตัวอะไรลงมา นั่นก้คือหาโค้ดของ input ตัวที่ i นั่นแหละ จากโค้ดของfunction จะเห็นว่าถ้า input เป็นเท่าไหร่มันจะเอาไปบวกกับตำแหน่ง แล้วmodด้วย26แล้วก้บวก97เสร็จแล้วก้ได้เป็นค่า result เพราะฉะนั้นเราก้ทำย้อนกลับ
สำหรับตัว "u"
116-97 = 19 แสดงว่า input + 0(ตำแหน่ง) ต้องหารด้วย 26 เหลือเศษ 19 เราก้มาดูว่ามีตัวอะไรบ้างที่หารด้วย 26 แล้วเหลือเศษ 19 ก้จะมี
19,45,64,83,102,121,140...
แต่ที่ใช้ได้มีแค่ 83,102,121 สามตัว เพราะที่เหลือไม่ใช่โค้ดของตัวหนังสือ ตามที่กำหนดมาให้
ก้แสดงว่าถ้าใส่ สามตัวนี้จะได้ u จริงหรือเปล่า อย่าพึ่งเชื่อต้องตรวจคำตอบก่อน
ตัว 83 ก้คือ ตัว "S" ซึ่งถ้าดูดีๆจะเห็นว่าในโค้ดน่ะถ้าเป็นตัวใหญ่จะถูกทำให้เป็นตัวเล็กก่อน
input = input.toLowerCase() ; //ทำให้เป็นตัวเล็ก
จาก 83 ก้จะกลายเป็น115 ซึ่งไม่ถูกและ
ส่วน 102 กะ 121 ไม่น่ามีปัญหา เพราะเป็นตัวเล็กอยู่แล้ว
102 = "g" ,121 = "y"
ก้คือถ้าใส่สองตัวนี้ลงไปจะได้ตัว "u"
ฮั่นแน่ นึกว่าจบแล้วอ่ะดิ
ต้องคิดอีกกรณีนึงด้วย คือ ถ้าเป็น G กับ Y ก้ใช้ได้นะเพราะมันจะถูกเปลี่ยนให้เป็นตัวเล็กอยู่แล้ว
ทันี้ก้คิดแบบนี้แหละ แต่ตัวต่อไปต้องระวังเรื่องค่าตำแหน่งเพราะตัวที่สองจะถูกบวกด้วยหนึ่งก่อนเอาไปmodด้วย26แบบนี้ไปเรื่อยๆก้จะออกเอง คิดเองละกันนะ โชคดีจ้า