コツコツ学習ブログ

プログラマのweb上のメモ的なもの

ABC 266(再投稿)

ABC 266 に参加した。

あと一歩で解けず、他の方の回答を見て悶絶したので自戒のため、次回のために

編集しておく

atcoder.jp

基本的に全探索+ 倍数判定で解ける問題なのだが、

出力例が一致せずつまってしまった。

■正解例

 for (long i = 0; i <= 998244353; i++) {
 if ( (N-i)% 998244353 == 0) {
 System.out.println(i);
 return;
 }

■誤答例

 for (int i = 0; i <= 998244353; i++) {
 int num = (int) (N - i);
 if (998244353 % num == 0) {
 System.out.println(i);
 return;
 }

何度やっても全問ACにならず、色々こねくり回したのだが

結果的にアルゴリズムは単純で、標準入力で受け取った値を

for文でループする際にintにキャストしてしまったのが原因だった。

凡ミス、、普段ループを回すときにintでしか回さない為

えがおよばなかった。

Longを扱う試験は今後もでるから気をつけよう