C - Repsept
一応解説でもCにしてはムズイとなってたのでよしとする(?)ダメだけど、、
下記のmodの世界での規則系に気付けるかどうか。
その世界でもn*10+7
してmod kした値は単純にn%k
した答えと同じになる
単純にn%k
した場合、ループの最大回数を何にしたらいいかわからない。
でもmodの世界だと、modする数字より大きくなることはないため、ループ回数のリミットをk
までとすることができる。
上記に気づいて、下記が実装できればそれだけの問題だけど、まあ、思いつかんわな。。。
int ans = -1; for(int i=1; i<=k; i++) { if(l % k == 0) { ans = i; break; } l = (l * 10 + 7) % k; } System.out.println(ans);