C#入門(第3回)

前回振り返り

その前に・・・

振り返りのフレームワーク YWT(やったこと/わかったこと/次にやること)

次回よりYWTを活用し、皆さんの理解度を確認していきます。

Y やったことW わかったことT 次にやること
・hoge
・hoge
・hoge
・hoge
・hoge
・hoge
それぞれ箇条書きで完結に纏めてみましょう。

実行方法

C#プロジェクトの実行

dotnet コマンドを利用して実行。

dotnet run

vscodeのデバック実行にて Console.ReadLine() を試したい場合、[.vscode\launch.json] を以下のように編集することで、コンソールからの入力(読み込み)が可能となる。

"console": "internalConsole",

"console": "integratedTerminal",

前回演習問題の解答例

問題1

前回演習問題の問題3[FizzBuzz]の入力値が文字列Sであった場合もエラーとせず、入力された文字をそのまま返すように修正してください。

using System;
var stringNumber = Console.ReadLine();
int numericValue;
bool isNumber = int.TryParse(stringNumber, out numericValue);
if (isNumber && stringNumber != null)
    stringNumber = FizzBuzz(numericValue);
Console.WriteLine(stringNumber);

static string FizzBuzz(int n)
{
    if (n % 3 == 0 && n % 5 == 0)
        return "FizzBuzz";
    if (n % 3 == 0)
        return "Fizz";
    if (n % 5 == 0)
        return "Buzz";
    return n.ToString();
}
問題2

問題文

w を、英小文字のみからなる文字列とします。 w が以下の条件を満たすならば、w を美しい文字列と呼ぶことにします。

  • どの英小文字も、w の中に偶数回出現する。

文字列 w が与えられます。w が美しい文字列かどうか判定してください。

制約

  • 1≤∣w∣≤100
  • w は英小文字 (az) のみからなる文字列である

入力

入力は以下の形式で標準入力から与えられる。

w

出力

w が美しい文字列ならば Yes を、それ以外の場合は No を出力せよ。


入力例 1

abaccaba

出力例 1

Yes

a が 4 回、b が 2 回、c が 2 回、それ以外の英小文字が 0 回出現します。


入力例 2

hthth

出力例 2

No
var w = Console.ReadLine();

var result = w.ToLookup(c => c).All(l => l.Count() % 2 == 0)  ? "Yes" : "No";

Console.Write(result);

今回の演習問題

問題1

問題文

幼稚園に通う 2 人の子供がキャンディーの取り合いをしています。

3 個のキャンディーパックがあり、それぞれのパックにはキャンディーが abc 個入っています。

先生はこの 3 個のパックを、キャンディーの個数が等しくなるように 2 人に分けようとしています。そのような分け方が可能かどうかを判定してください。

ただし、キャンディーをパックから取り出すことはできず、それぞれのパックをそのままどちらかの子供にあげる必要があります。

制約

  • 1≦a,b,c≦100

入力

入力は以下の形式で標準入力から与えられる。

a b c

出力

キャンディーを同じ個数に分けられるなら Yes を、そうでなければ No を出力せよ。


入力例 1

10 30 20

出力例 1

Yes

ひとりめの子供に 30 個のキャンディーの入ったパックを、もう一方の子供に 10 個と 20 個のキャンディーの入ったパックをあげると、2 人のもらうキャンディーの個数を等しくすることができます。


入力例 2

30 30 100

出力例 2

No

この場合、100 個のキャンディーの入ったパックを貰った子供は必ずもう一方の子供より多くのキャンディーを貰うことになってしまいます。

3 つすべてのパックをどちらかの子供にあげるように分けなければならないことに注意してください。


入力例 3

56 25 31

出力例 3

Yes
問題2

問題文

山田くんはペンキをこれまでに3つ買いました。おととい買ったペンキの色は a , 昨日買ったペンキの色は b , 今日買ったペンキの色は c です。各ペンキの色は1以上100以下の整数で表されます。 山田くんは忘れん坊なため、同じ色のペンキを買ってしまっていることがあります。山田くんが買ったペンキの色の種類の個数を教えてあげてください。

制約

  • 1≦a,b,c≦100

入力

入力は以下の形式で標準入力から与えられる。

a b c

出力

山田くんが買ったペンキの色の種類の個数を出力せよ。


入力例 1

3 1 4

出力例 1

3

色 1,3,4 の 3 種類です。


入力例 2

3 3 33

出力例 2

2

色 3,33 の 2 種類です。

コメント