- なあ、再帰関数好きな人いる? パート2 [転載禁止]©2ch.net
334 :デフォルトの名無しさん[]:2015/09/12(土) 16:51:13.69 ID:fRaBt1iw - 再帰は変数のスコープが分かりにくい
static int[] loop(int[] a, int[] values) { int outer = 0; for (int inner = 0; inner < a.length; inner++) if (contains(values, a[inner])) a[outer++] = a[inner]; return Arrays.copyOf(a, outer); } static int[] recursive(int[] a, int value) { return recursive(0, 0, a, value); } static int[] recursive(int outer, int inner, int[] a, int value) { if (inner >= a.length) return Arrays.copyOf(a, outer); if (a[inner] != value) a[outer++] = a[inner]; return recursive(outer, inner + 1, a, value); } static boolean contains(int[] a, int value) { for (int i = 0; i < a.length; i++) if (a[i] == value) return true; return false; }
|