Küçük bir sayının daha büyük bir sayıdan bit ödünç alabileceğini biliyor muydunuz ? İşte bir örnek. Diyelim ki iki sayımız 5 ve 14. İlk olarak, bunları ikili olarak yazın:
5 14
000101 001110
Önce en küçük almak üzerine uzakta daha büyük sayıda bit ve biz en küçük ver kapalı diğer numarasına bit. Yani
This bit turns off
|
v
000101 001110
^
|
This bit turns on
Şimdi elimizde
000111 001100
ve sayılarımız 7 ve 12'dir. İlk sayı hala daha küçüktür, bu yüzden devam ediyoruz.
000111 001100
001111 001000
Şimdi 15 ve 8 var, böylece durabiliriz. Bu işlem grubuna "bit borçlanma" iki sayı diyoruz. Bir örnek daha yapalım. 20 ve 61.
20 61
010100 111101
010101 111100
010111 111000
111111 100000
63 32
Yani sonuçlarımız 32, 63. Bir tane daha yapalım . 31 ve 12. 31 zaten 12'den büyük, bu yüzden yapacak bir şey yok! 31 ve 12 bit borçlanması 31 ve 12 verir, değişiklik olmaz.
Meydan okuma
Zorluk, iki sayı alan ve bunları ödünç alan bir program veya işlev yazmaktır. İki sayı her zaman pozitif tamsayı olur. Giriş ve çıktınız herhangi bir makul formatta olabilir.
Test G / Ç:
Input: 2, 3
Output: 3, 2
Input: 3, 2
Output: 3, 2
Input: 8, 23
Output: 31, 0
Input: 42, 81
Output: 63, 0
Input: 38, 41
Output: 47, 32
Input: 16, 73
Output: 23, 0
Input: 17, 17
Output: 17, 17
Standart boşluklar uygulanır ve baytlarda en kısa cevap kazanır!