5日間は空いたけど、そこまで勉強してないから二日目だよ

(メモ代わりも含めて下書きしてたら次の日に投稿したみたいになってたけど投稿日は15だえ)

 

だいたい進捗

さあというわけで二日目やりましたのでだいたい進捗おば。

今回がAPG4bの第六回から10回までを学習しました。

 

具体的にはここらへんを勉強しましたね。

1.06.if文・比較演算子・論理演算子 | EX6
1.07.条件式の結果とbool型 | EX7
1.08.変数のスコープ | EX8
1.09.複合代入演算子 | EX9
1.10.while文 | EX10
1.11.for文・break・continue | EX11

 

感想てきなもの

 

セミコロンを忘れない!

スコープ内で定義されてるかどうか、みたいなのが難しすぎる。

forとかwhileとか出てきて自由度と難易度の上昇を感じる。

 

とは言ってもまあついては行けてる気はする。

(そういえば言ってなかったけど学んでる原語はC++です。Cにも色々あるのかな?C原語といってしまっていいのかは良くわかりません。)

 

しかしながらわからなくなってきている部分も結構あって、特にエラーコードで多くなってきている。なんかループしてるとか致命的ななにかなんだろうけど正直良くわからないのでエラーコードの解読はchatgptに投げたりもしてます。

 

それはそうと今回もやった問題を紹介。

問題文1

1118 のような、3つ以上の同じ数字が連続して並んだ 4 桁の整数を 良い整数 とします。4 桁の整数 N が与えられるので、N が 良い整数 かどうかを答えてください。

制約

制約
1000≦N≦9999
入力は整数からなる
入力
入力は以下の形式で標準入力から与えられる。
N
出力
N が 良い整数 ならば Yes を、そうでなければ No を出力せよ。

回答

 
考えていたこと
上三桁と下三桁を出して111で割り切れるかどうかを出すのかなというのしか思いつかなかった。
もうちょいスマートなやり方もありそう。
てか、この各桁の数字を出してそれをその桁数でかけて割るという作業を既に3回ぐらいやっているな。
この各桁を求める方法本当にめんどくさい。まだ4桁だからいいけど今後桁数増えてきたらどうしよう。
(forとかでうまくできますかね今度考えてみます。)

問題文2

日本では、3 月 3 日にひなあられという、色のついたお菓子をお供えする習慣があります。

1 つの袋があり、ひなあられが N 個入っています。

この袋には、桃色、白色、緑色の 3 種類か、桃色、白色、緑色、黄色の 4 種類のひなあられが入っていることが分かっています。

桃色を P、白色を W、緑色を G、黄色を Y と表したとき、袋からひなあられを 1 粒ずつ取り出していったところ、i 番目に取り出したひなあられの色は 𝑆𝑖 でした。

この袋に 3種類のひなあられが入っていた場合は Three4 種類のひなあられが入っていた場合は Four と出力してください。

制約

  • 1≤N≤100
  • Si​ は P か W か G か Y
  • Si​=PSj​=WSk​=G を満たす 𝑖,𝑗,𝑘 が必ず存在する
 
回答
 
考えていたこと
 
yが出たらbreakですぐに終わりっていうのはわかったのですが、そうじゃない場合のやり方が沼ってかなり分からなかった。
 
ㇱンプルelseでいいんですかね。でもそのたびにthreeを出すわけにもいかなくないですか?Yのときは+1してそれ以外のときは何もしないっていう処理を繰り返すでも良かったんですかね今にして思えば。0からスタートしてYが出るたびに+1して最終的に0ならthreeを出すみたいな。でもbreakでいいですもんね別に。breakしなかった場合のどのようなコードを書けばいいか最後までわかりませんでした。
 
結局ループが最終回に突入したときつまり、i == N - 1をifにする方法しか思いつきませんでした。なんかスッキリしてません。
 
まとめ
 
多少は成長しているんですかね。牛歩すぎて良くわかりません。まあそんなことを考える段階にないのは理解していますが。それはそうと大学がテスト期間に入りますので、少しサワレナイ期間に入りそうです。全てを忘れて帰ってきそうですがまあ単位のほうが大事だからしょうがないですね。
テストが無事に終わったら続きます!ではまた