A Very Big Sum
Problem
Hitung jumlah semua elemen dalam array bilangan bulat yang sangat besar. Gunakan tipe data yang mendukung nilai hingga ~10¹⁸.
Input
Baris 1: integer
n(ukuran array)Baris 2:
nbilangan bulat (masing-masing hingga ~10⁹)
Output
Satu bilangan: total penjumlahan
Contoh
Input:
5
1000000001 1000000002 1000000003 1000000004 1000000005
Output:
5000000015Intuisi
Sama seperti Simple Array Sum, tetapi:
Gunakan
long(64-bit) agar tidak overflow.Jumlah maksimum:
n = 10⁵, setiap elemen10⁹→ total10¹⁴(masih aman dilong).
Contoh Langkah-demi-Langkah
[1000000001, 1000000002, ...]
0 → +1000000001 → ... → 5000000015Algoritma
sum = 0 (tipe long)
untuk setiap x di array:
sum += x
kembalikan sumWaktu:
O(n)Ruang:
O(1)
Implementasi
public static long aVeryBigSum(List<Long> ar) {
long sum = 0;
for (long x : ar) {
sum += x;
}
return sum;
}func aVeryBigSum(ar []int64) int64 {
sum := int64(0)
for _, x := range ar {
sum += x
}
return sum
}Ringkasan
Bahasa
Tipe Data
Kode Inti
Kompleksitas
Java
long
sum += x;
O(n)
Go
int64
sum += x
O(n)
Gunakan
long/int64→ aman dari overflow. Solusi sederhana, efisien, dan robust.
Last updated