paizaオンラインハッカソン6(緑川編・六村編)を解いてみたよ

By | Date : 2015/09/03 ( Last Update : 2016/04/30 ) | 53 views

カテゴリ : C# プログラミング タグ: , ,

Myoga-SB-SDF-A2

Hello~! ミョウガです!

今回は「paizaオンラインハッカソン6」でプログラミングしてみました。

 

paizaオンラインハッカソン6には3種類の問題があるけど、ここでは緑川さんと六村さんの方をチョイスします。

https://paiza.jp/poh/joshibato/tsubame

https://paiza.jp/poh/joshibato/rio

霧島編はニアが書いたQiitaの記事を参照してね。

[C# / paiza POH] paizaオンラインハッカソン6(霧島編)を解く!

http://qiita.com/nia_tn1012/items/25bc3dcb0fb3343d5509

 

1. 緑川編を解く

まずは緑川編です。

2桁のランダムな数字Nを読み取り、NとNの十の位とNの一の位の和を求めます。

2桁の数字の場合、十の位は10で割った商、一の位は10で割った余りとなります。

 

実行結果

◆ 入力

97

◆ 出力

113

 

2. 六村編を解く

次は六村編だよ。

操作番号Mと量Qを読み取り、操作番号に応じて以下の3種類の操作を行います。コーヒーカップ内のお湯の量を W [g]、コーヒー粉末の量を P [g] とします。

  1. コーヒーカップにお湯を Q [g] 入れます。( W ← W + Q )
  2. コーヒーカップにコーヒー粉末を Q [g] 入れます。( P ← P + Q )
  3. コーヒーカップの中身を Q [g] 飲みます。( ( W, P ) ← ( W – Q × W / ( W + P ), P – Q × P / ( W + P ) ) )

この操作をN回行い、最終的なコーヒーの濃度( P / ( W + P ) × 100 [%] )を求めます。

これは操作番号Mをswitch文で分岐して、それぞれのcaseでお湯やコーヒー粉末を増やしたり、減らしたりすることで求まります。

 

実行結果

◆ 入力

4
1 50
2 55
3 15
1 20

◆ 出力

42

 

ここで気をつけておきたいのが、31~33行目にある「味見」操作の処理です。式の右辺にあるお湯とコーヒー粉末の量は味見する前の値を使います。もし、case 3を以下のコードにしてしまうと、味見した後のコーヒーの量を使ってお湯の量を計算するので、正しくない値になります。ケアレスミスに気をつけてね!

 

対策としては、味見前のお湯またはコーヒー粉末の量をキャッシュしておく、予めお湯とコーヒー粉末の和を別の変数に格納する、タプルなどを使って計算する方法があります。

 

ではでは、See youですよっ♪

 

この記事をシェアする
Chronoir.netのRSSフィードを購読する

About : ミョウガ(Myoga)

Hello~! 「ミョウガ」です。よろしくお願いします!(≧▽≦)/ 主にC#/XAML/C++などをメインにプログラミングやアプリの開発をしています。好きな物はカフェラテとハーブティ、趣味は写真撮影と艦これです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*