Bir negatif olmayan bir sayıyı alır, bir program ya da işlev yazmak gerekir N
giriş ve çıkışları veya geri dönüş, iki tamsayı (negatif sıfır ya da pozitif) olarak X
ve Y
.
Tamsayılar matematiksel anlamda kastedilir, çünkü bunların çoğu sonsuzdur.
Uygulanan fonksiyonun önyargılı olması gerekir . Bu, her N
biri 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; N
yani, 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 V
ve V U
eğ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 N
ve çı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?