Kadang-kadang, ketika saya benar-benar bosan, saya suka mengambil jumlah array bilangan non-negatif. Saya hanya mengambil jumlah array panjang yang merupakan kekuatan dua. Sayangnya saya sering melakukan kesalahan. Untungnya saya melacak pekerjaan saya karena saya mengikuti cara berikut:
Saya menambahkan pasangan angka yang berdekatan sampai hanya ada satu yang tersisa. Sebagai contoh:
6 + 18 + 9 + 6 + 6 + 3 + 8 + 10
= 24 + 15 + 9 + 18
= 39 + 27
= 66
Tugas Anda adalah menentukan apakah saya telah membuat kesalahan di suatu tempat. Anda bisa mendapatkan input yang diteruskan ke fungsi Anda atau membaca dari standar masuk. Output dapat dicetak atau dikembalikan.
Input: Array / daftar / dll. bilangan bulat non-negatif, dan mungkin juga panjang array jika bahasa Anda membutuhkannya. Array itu adalah semua angka yang dibaca dari kiri ke kanan lalu atas ke bawah. Misalnya array di atas akan menjadi:
[[6, 18, 9, 6, 6, 3, 8, 10], [24, 15, 9, 18], [39, 27], [66]]
atau
[6, 18, 9, 6, 6, 3, 8, 10, 24, 15, 9, 18, 39, 27, 66]
jika Anda suka.
Keluaran: boolean tunggal yang menunjukkan apakah ada kesalahan atau tidak. Boolean dapat direpresentasikan menggunakan pemetaan apa pun asalkan semua input di mana kesalahan dibuat mengembalikan / mencetak hasil yang identik dan semua input yang tidak mengandung kesalahan mengembalikan / mencetak hasil yang identik. Ini harus berjalan tanpa mengatakan, tetapi dua output tidak bisa sama.
Beberapa Contoh Penjumlahan yang Benar:
6
5+6
=11
3 + 2 + 4 + 5
= 5 + 9
= 14
[0, 1, 2, 3, 1, 5, 6]
[[1, 2, 4, 8], [3, 12], [15]]
Beberapa Contoh Penjumlahan Tidak Benar:
5+4
=8
4 + 4 + 4 + 4
= 9 + 7
= 16
[[1, 2, 3, 4], [7, 3], [10]]
[3, 4, 5, 6, 7, 8, 9]
Ingatlah bahwa saya dapat membuat kesalahan dan masih mendapatkan jawaban yang benar. Jika saya melakukan kesalahan, itu tidak akan menghasilkan angka tambahan atau nomor hilang dalam array terakhir, hanya nomor yang salah.
Celah standar dilarang. Jawaban terpendek dalam setiap bahasa adalah pemenang. Jawaban yang lebih lama akan menang dalam kasus seri. Saya memiliki hak untuk memutuskan apa "bahasa yang sama" itu, tetapi saya akan mengatakan di muka bahwa suatu titik tidak dapat diperoleh dalam Python 2, dan Python 3.
[0,1,2,3,1,5,6]
tidak valid karena "Input: Array / daftar / etc. Dari bilangan bulat positif".