2013年10月27日日曜日

開発環境

C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅡ部(単純なプログラミング)の9章(変数スコープおよび関数)、9.4(構造かプログラミング)、9.5(再帰)、9.7(プログラミング実習)、実習 9-3をDartで解いてみる。

その他参考書籍

実習 9-3.

コード

sample.dart

int count(int number, List<int> numbers, int length){
  int counter = 0;
  if (length == 0){
    return counter;
  }
  if (numbers[length - 1] == number){
    counter += 1;
  }
  return counter + count(number, numbers, length - 1);
}

void main(){
  List<int> numbers1 = [],
            numbers2 = [1],
            numbers3 = [1, 2, 1, 3, 4, 5],
            numbers4 = [1, 2, 3, 4, 5, 2],
            numbers5 = [1, 2, 3, 4, 5, 6];
  for (var numbers in [numbers1, numbers2, numbers3, numbers4, numbers5]){
    for (var i = 0; i < 5; i += 1){
      print('${numbers} ${i} ${count(i, numbers, numbers.length)}個');
    }
  }
}

入出力結果

[] 0 0個
[] 1 0個
[] 2 0個
[] 3 0個
[] 4 0個
[1] 0 0個
[1] 1 1個
[1] 2 0個
[1] 3 0個
[1] 4 0個
[1, 2, 1, 3, 4, 5] 0 0個
[1, 2, 1, 3, 4, 5] 1 2個
[1, 2, 1, 3, 4, 5] 2 1個
[1, 2, 1, 3, 4, 5] 3 1個
[1, 2, 1, 3, 4, 5] 4 1個
[1, 2, 3, 4, 5, 2] 0 0個
[1, 2, 3, 4, 5, 2] 1 1個
[1, 2, 3, 4, 5, 2] 2 2個
[1, 2, 3, 4, 5, 2] 3 1個
[1, 2, 3, 4, 5, 2] 4 1個
[1, 2, 3, 4, 5, 6] 0 0個
[1, 2, 3, 4, 5, 6] 1 1個
[1, 2, 3, 4, 5, 6] 2 1個
[1, 2, 3, 4, 5, 6] 3 1個
[1, 2, 3, 4, 5, 6] 4 1個

0 コメント:

コメントを投稿