ブルーブリッジのJava-シーケンス加算

リソース制限の
制限時間:1.0秒メモリ制限:256.0メガバイト
問題の説明
1 + 2 + 3 + ... +評価 N です。
入力形式の
入力は、整数nを含みます。
出力形式の
値を表す整数を含む出力ライン、1 + 2 + 3 + ... + N です。
サンプル入力
4
出力例
10
のサンプル入力
100
説明:あなたはより良いタイトルを行う助けに入力と出力の複数のセットを与えるいくつかのサンプルの質問があります。
前に、すべてのこれらのサンプルの提出に一般的には、ジョブによってテストされることになるが、それはサンプルデータのこれらのセットが正しいプログラムは潜在的なエラーは、まだあなたのスコアを下げるためにつながる可能性が完全に正確であることを意味するものではありません。
サンプル出力
5050
のデータサイズと表記
1 <= N <=10億。
注:してくださいノートここではデータのサイズという。
アイデアは、この方法は、大規模なデータ、この「暴力」タイムアウトに頻繁にリードされたときに、直接、しかし、蓄積するためにループを使用して、この質問を向けることです。この時点では、他の方法を考える必要があります。あなたが入力し、あなたのプログラムとして10億を使用する場合は、あなたのプログラムは、上記の規定に定める時間以内に実行することはできないが、試すことができます。
この場所は、答えの大きさであることは注目に値するのためのもう一つの問題は、あなたが結果を保持するために整数を使用する場合、結果はエラーにつながる、範囲内の整数(int型)のデフォルト言語ではありません。
あなたがCまたはC ++言語を使用していて、printfの出力を使用する準備ができている場合は、あなたのフォーマット文字列は、long long型の整数出力に%I64dを記述する必要があります。

import java.math.BigInteger;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        BigInteger a;
        BigInteger g = new BigInteger(String.valueOf(n / 2));
        BigInteger m = new BigInteger(String.valueOf(1 + n));
        a = g.multiply(m);
        if (n % 2 == 0) {
            System.out.println(a);
        } else {

            System.out.println(a.add(g.add(BigInteger.ONE)));
        }

    }
}
公開された19元の記事 ウォンの賞賛0 ビュー783

おすすめ

転載: blog.csdn.net/qq_43581283/article/details/104914843