Bir negatif olmayan bir sayıyı alır, bir program ya da işlev yazmak gerekir Ngiriş ve çıkışları veya geri dönüş, iki tamsayı (negatif sıfır ya da pozitif) olarak Xve Y.
Tamsayılar matematiksel anlamda kastedilir, çünkü bunların çoğu sonsuzdur.
Uygulanan fonksiyonun önyargılı olması gerekir . Bu, her Nbiri için farklı bir X Yçift X Yüretmesi gerektiği ve bazı girdiler için her çiftin çıkması gerektiği anlamına gelir; Nyani, aşağıdaki çiftlerin bazıları için çıktı alınmalıdır N:
...
┌─────┬─────┬────┬────┬────┐
│-2 -2│-2 -1│-2 0│-2 1│-2 2│
├─────┼─────┼────┼────┼────┤
│-1 -2│-1 -1│-1 0│-1 1│-1 2│
├─────┼─────┼────┼────┼────┤
... │0 -2 │0 -1 │0 0 │0 1 │0 2 │ ...
├─────┼─────┼────┼────┼────┤
│1 -2 │1 -1 │1 0 │1 1 │1 2 │
├─────┼─────┼────┼────┼────┤
│2 -2 │2 -1 │2 0 │2 1 │2 2 │
└─────┴─────┴────┴────┴────┘
...
Bunu unutmayın U Vve V Ueğer farklı çiftlerdir U!=V.
ayrıntılar
- Diliniz keyfi olarak büyük tamsayıları desteklemiyorsa sorun değil, ancak algoritmanızın keyfi büyük bir tamsayı veri türüyle çalışması gerekir. Kodunuz hala en azından giriş değerlerini desteklemelidir
2^31-1. - Yazdırmak veya dize hiçbir lider olarak çıktı dönmesi için seçerseniz
0'ın veya+işaretlere izin verilmez. Aksi halde, dilinizin standart tamsayı gösterimi iyi olur.
Örnek
Eğer görev negatif olmayan bir tamsayı alarak bir bijective işlevini yapmak olacaktır Nve çıkış tek tamsayıX çözüm bir çözüm olabilir.
if (input mod 2 == 0) return N/2 else return -(N+1)/2,
bir dilde uygulanır. Bu işlev döndürür X = 0 -1 1 -2 2...için N = 0 1 2 3 4....

10=>11 12, 9=>10 11, bu 11 geçersiz olduğu için geçersiz mi?