結果
問題 |
No.648 お や す み
|
ユーザー |
![]() |
提出日時 | 2018-04-08 10:43:34 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 1,514 ms / 2,000 ms |
コード長 | 1,003 bytes |
コンパイル時間 | 671 ms |
コンパイル使用メモリ | 28,544 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-09-13 22:11:11 |
合計ジャッジ時間 | 34,976 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 84 |
ソースコード
/************************************************************** 初項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; }