問題の説明
1 + 2 + 3 + ... + nの値を見つけます。
入力フォーマット
入力には整数nが含まれます。
出力フォーマット
1 + 2 + 3 + ... + nの値を表す整数を含む行を出力します。
サンプル入力
4
サンプル出力
10
サンプル入力
100
注:一部のテストの質問では、サンプルの入力と出力の複数のセットが提供され、より良い結果が得られます。
通常、これらのサンプルはすべて、提出前にテストして合格する必要がありますが、これは、これらのサンプルデータのセットが正しいことを意味するものではありません。プログラムは完全に正しいです。潜在的なエラーにより、スコアが低くなる可能性があります。
サンプル出力
5050
データの規模と慣習
1 <= n <= 1,000,000,000。
注:ここではデータスケールに注意してください。
この質問の直接的な考え方は、ループを直接使用して累積することです。ただし、データスケールが大きい場合、この「暴力的な」方法はタイムアウトにつながることがよくあります。この時点で、他の方法を考える必要があります。プログラムの入力として1000000000を使用する場合、試してみることができますが、プログラムは上記で指定された制限時間内に実行できますか?
この質問に関するもう1つの注意点は、回答のサイズが言語のデフォルトの整数型(int)の範囲内にないことです。整数型を使用して結果を保存すると、結果にエラーが発生します。 。
C ++またはC言語を使用していて、printfを使用して結果を出力する準備ができている場合は、フォーマット文字列を%I64dとして記述して、longlong型の整数を出力する必要があります。
参照コード(c ++):
#include<iostream>
using namespace std;
#include<cmath>
int main()
{
long long n;
long long num;
cin>>n;
num=n*(n+1)/2;
cout<<num<<endl;
return 0;
}