[HackerRank]超大數加總(A Very Big Sum)

題目描述

給定一個大小為N的整數陣列,您需要計算其中所有元素數量的總和。要特別注意的是,數值可能會很大!

一個32位元的整數(int)可以表示的數值範圍介於-231到231-1(包含-231和231-1)。在計算總和的過程中,數值可能會超過32位元整數所能表示的範圍。

原題網址

https://www.hackerrank.com/challenges/a-very-big-sum

輸入格式

第一行包含一個整數N,範圍在1到10(包含1和10)之間,接下來的一行有N個整數,範圍在0到1010(包含0和1010),使用空格進行分隔,每個整數分別表示陣列的一個元素。

輸出格式

輸出陣列中所有元素相加的結果。

範例輸入

5
1000000001 1000000002 1000000003 1000000004 1000000005

範例輸出

5000000015

額外解釋

1000000001 + 1000000002 + 1000000003 + 1000000004 + 1000000005 = 5000000015

解題概念

先從標準輸入中讀取陣列的長度和陣列的元素,建立出整數陣列物件,接著再使用Java 8提供的串流(Stream)功能,把陣列轉成串流物件後,再使用「asLongStream」方法轉成長整數的串流,接著使用「sum」方法來計算總和。

參考答案

關於作者

Magic Len

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章