結果

問題 No.648  お や す み 
ユーザー snow4726
提出日時 2018-03-18 07:07:25
言語 C
(gcc 13.3.0)
結果
AC  
実行時間 1,515 ms / 2,000 ms
コード長 1,003 bytes
コンパイル時間 365 ms
コンパイル使用メモリ 28,672 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-09-13 21:20:44
合計ジャッジ時間 34,542 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 84
権限があれば一括ダウンロードができます

ソースコード

diff #

/**************************************************************
初項1、公差1、の等差数列の和が入力した数と同じになる場合は
「YES」とその項数を出力し、同じにならない場合は「NO」と出力する
プログラム
入力:指定した数値n
出力:nと数列の和が同じになる場合は「YES」とその項数、違う場合は「NO」
**************************************************************/
#include<stdio.h>
#include<inttypes.h>

int main(){

    long long int i = 1;    /* 等差数列の項数 */
    long long int n;    /* 指定した数値n */

    scanf("%"SCNd64"",&n);  /* 入力 */

    /* 等差数列の和がn以上になるまで*/
    while( (i*(i+1))/2 < n ){
        i++;
    }
    
    if( (i*(i+1))/2 == n ){ /* nと等差数列の和が同じだった場合 */
        printf("YES\n%lld\n",i);    /* 「YES」とその項数を出力 */
    }else{
        printf("NO\n"); /* 「NO」を出力 */
    }

    return 0;
}
0