再帰のサンプル

超シンプルな再帰処理のサンプルです。Fortran90ではrecursiveをつける必要があります。C言語C++再帰の方法に違いはありませんが、念のため。

recursion.f90

program main
  implicit none

  integer :: i = 0

  call recursion(i)

end program main

recursive subroutine recursion(param)
  integer, intent(inout) :: param

  if ( param < 10 ) then
    param = param + 1
    write(*,'(a, i5)') "param = ", param
    call recursion(param)
  endif

end subroutine recursion

recursion.c

#include <stdio.h>

void recursion(int param) {
  if( param < 10 ) {
    param += 1;
    printf("%s%5d\n", "param = ", param);
    return recursion(param);
  }
}

main(void) {
  int i = 0;
  
  recursion(i);
}

main.cpp

#include <iostream>
#include <iomanip>

void recursion(int param) {
  if( param < 10 ) {
    param += 1;
    std::cout << "param = ";
    std::cout << std::setw(5) << param << "\n";
    return recursion(param);
  }
}

int main() {
  int i = 0;
  recursion(i);
  return 0;
}