算数パズルしようや
■ このスレッドは過去ログ倉庫に格納されています
ある整数Nが与えられます。
「Nを、Nの各桁和か各桁積に置き換える」操作をちょうど100兆回行ったあと、N=1にできるか判定してください。
各桁和: 217→2+1+7=10
各桁積: 217→2×1×7=14
これ解けるんか? >>16
そうや
最初にNが与えられるから、最も都合よく操作した時にN=1にできるか判定しろって感じ >>20
別に「ちょうど」は要らんかったわ
Nは単調減少することが示せるし 全てのNでこれが成立するのかって問いなら否
それとも成立するNをいっぱい探してみようってことなのか? あーなんか解けたなこれ
事前にN<1000くらいは小さい値から全探索しておけばいいのか 1,10,100,1000
1,11,111,1111をつくってい感じやな >>23
だいたいそんな感じや
たとえば「Nが766287459のとき、操作後1にできる?」みたいな判定問題やな >>27
競プロやなこれ
Nを指定すればよかったわ Nが123456789のとき、操作後1にできますか?
みたいな具体的な出題にすべきやったわ 多倍長整数を容認すれば、N<10^100くらいまでは解けそう
各桁積のときの収束速度をちゃんと確認しとらんから、限界は分からんが >>29
競プロになってしまったわ
オリジナル問題 10^n くらいの各桁積の最大が 9^n だから (9/10)^n くらいで落ちていくんやない? >>34
そうやな
ただ多倍長整数が絡むから実計算速度は遥かに遅そうや たくさん操作した時にN=1にできるか?
という表を下からのDPで前計算しておけば、各桁和のときはO(1)で判定可能
あとは愚直に各桁積を取り続ければいい ■ このスレッドは過去ログ倉庫に格納されています