問題

 

 

 

感想

 

 

 最大公約数の求め方が思いつかない

 

約数と倍数の関係を使って、AからBの範囲でCの倍数が二つ以上あればCはAとBの約数という考え方がもう目が点ポーン

ユークリッドの互除法のアルゴリズム知ってからそれ使うことしか頭になかったよ・・・

それだと明らかにTLE泣

A以上B以下のCの約数=B以下のCの約数-(A-1)以下のCの約数

上矢印もうすごい

発想が賢いとしか言いようがない

 

 return 0;って何?

 

return 0;がプログラムが正常に終了したことを表してくれる

書かなくてもいいけど、return 0;を書くとそこでプログラムが終わるからfor文で条件分岐では終わらせたいときにreturn 0;でプログラムを終わらせてあげることができる流れ星

これからいっぱい使ってあげようラブラブ

 

問題

 

 

感想

 

 char a[5]にa[i] = 0を入れているのはなんだろう?

 

これはnull文字というもの(初めて知ったびっくり)

null文字は制御文字の一つ('\n'の仲間)

null文字が文字列の終わりを表す

nullと整数の0は値が一致する(ちなみにfalseも一致する)

 

 c++実装例12行目の

 

 

if (((a[i] + 1) % 10) != (a[i + 1] % 10))ってどういうこと

 

char型で扱っていてもASCⅡコードによって数値が割り当てられているから、その数値を用いて計算することができる

ここでは0~9の値が入力されるから10で割った値について確認すると連続の値かをチェックできる

 

いやーbool same, stepともに初期値をtrueにした方が実装が楽になるの気づかなかったなぁガーン

まだまだ文字列について知らないことがいっぱいあることがわかる良い問題でした!

 

 


 

 

 

 

 

 

 

 

問題

 

 

以下負け惜しみ     。・゜・(/Д`)・゜・。うわぁぁぁぁん 

解説動画のA=10^9,B=1のパターンで愚直に実装したものではTLEになってしまう←やりました泣

境界の見つけ方Ax<=x+Bの右辺のxがないと思ってしまった。

掛け算する回数はO(log2)なのか。logがどこから来たのか分からん。

そろそろ愚直解しか書けないところから抜け出したいなぁ。

まだたまに愚直解すらミスるから無理かもしれんが。