Excel VBA, 59 46 ไบต์
แข็งแรงเล่นกอล์ฟ
ไม่ระบุชื่อ VBE ฟังก์ชั่นหน้าต่างทันทีที่ใช้ช่องว่าง (
) สตริงอาร์เรย์แบบมีตัวคั่นเป็นอินพุตจากช่วง[A1]
และส่งออกตัวเลขปรับค่าดัชนี 1 รายการของพวกเขาในรายการเริ่มต้นไปยังหน้าต่างทันที VBE
For Each n In Split([A1]):i=i+1:?n Mod i;:Next
อินพุต / เอาต์พุต:
[A1]="10 9 8 7 6 5 4 3 2 1" ''# or manually set the value
For Each n In Split([A1]):i=i+1:?n Mod i;:Next
0 1 2 3 1 5 4 3 2 1
Sub
เวอร์ชันประจำเก่า
รูทีนย่อยที่รับอินพุตเป็นอาเรย์ที่ผ่านและออกไปยังหน้าต่าง VBE ทันที
Sub m(n)
For Each a In n
i=i+1
Debug.?a Mod i;
Next
End Sub
อินพุต / Ouput:
m Array(10,9,8,7,6,5,4,3,2,1)
0 1 2 3 1 5 4 3 2 1
Ungolfed
Option Private Module
Option Compare Binary
Option Explicit
Option Base 0 ''# apparently Option Base 1 does not work with ParamArrays
Public Sub modIndex(ParamArray n() As Variant)
Dim index As Integer
For index = LBound(n) To UBound(n)
Debug.Print n(index) Mod (index + 1);
Next index
End Sub
อินพุต / เอาต์พุต:
Call modIndex(10,9,8,7,6,5,4,3,2,1)
0 1 2 3 1 5 4 3 2 1