Created
July 4, 2013 03:59
-
-
Save KentaKomai/5924813 to your computer and use it in GitHub Desktop.
recursion sample
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include<iostream> | |
#include<cmath> | |
using namespace std; | |
#define ARRAY_LENGTH(array) (sizeof(array) / sizeof(array[0])) | |
/* | |
* forループで配列内の最大値を返す | |
*/ | |
int get_max_forloop(int numbers[], int size){ | |
int max_number = 0; | |
for(int i=0; i<size; i++) | |
max_number = max_number < numbers[i] ? numbers[i] : max_number; | |
return max_number; | |
} | |
/* | |
* forループで配列内の整数の合計を返す | |
*/ | |
int get_total_forloop(int numbers[], int size){ | |
int total = 0; | |
for(int i=0; i<size; i++) | |
total += numbers[i]; | |
return total; | |
} | |
/* | |
* 再帰を用いて配列内の最大値を探す | |
*/ | |
int get_max_recursive(int numbers[], int size){ | |
if(size == 0) return 0; | |
int tmp_number = get_max_recursive(numbers, size-1); | |
return tmp_number > numbers[size-1] ? tmp_number: numbers[size-1]; | |
} | |
/* | |
* 再帰を用いて配列内の整数の合計を返す | |
*/ | |
int get_total_recursive(int numbers[], int size){ | |
if(size==0) return 0; | |
return numbers[size-1] + get_total_recursive(numbers, size-1); | |
} | |
int main(){ | |
int numbers[] = {1, 2, 3, 4, 5, 6, 7, 8, 10, 9}; | |
cout<< "--------get_max-------" << endl; | |
cout<< get_max_forloop(numbers, ARRAY_LENGTH(numbers) ) <<endl; | |
cout<< get_max_recursive(numbers, ARRAY_LENGTH(numbers) ) <<endl; | |
cout<< "--------get_total-------" << endl; | |
cout<< get_total_forloop(numbers, ARRAY_LENGTH(numbers) ) <<endl; | |
cout<< get_total_recursive(numbers, ARRAY_LENGTH(numbers) ) <<endl; | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment