ブルーブリッジカップブラッシング質問入門トレーニングシーケンスの合計

問題の説明

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;
}

 

おすすめ

転載: blog.csdn.net/qq2632246528/article/details/86667183