Exemplo n.º 1
0
boost::uint64_t jacobsthal(boost::uint64_t n)
{
    if (0 == n)
        return 0;
    else if (1 == n)
        return 1;
    else
        return jacobsthal(n - 1) + 2 * jacobsthal(n - 2); 
}
int jacobsthal(int n) {
  int result = 0;

  if (n == 0)
    result = 1;
  else if (n == 1)
    result = 1;
  else
  {
    int n_minus_two = jacobsthal(n-2);
    int n_minus_one = jacobsthal(n-1);

    result =  2*n_minus_two + n_minus_one;
  }

  return result;
}
int main(int argc, char *argv[]) {
    int i, n, k, b, aantal = 1;
    if (argc==2 || argc==3) {
        n = atoi(argv[1]);
        if (argc == 3) aantal = atoi(argv[2]);
        for (i=0; i<aantal; i++){
            b = jacobsthal(n);
        }
        printf("Jacobsthal(n = %d) = %d \n", n, b);
        return 0;
    } else {
        printf("Formaat: %s <getal n> [# interaties: default 1]\n", argv[0]);
        return 1;
    }
}
Exemplo n.º 4
0
int main(int argc, char** argv)
{
    try
    {
        if (2 != argc)
            throw std::exception();

        const boost::uint64_t n = boost::lexical_cast<boost::uint64_t>(argv[1]);

        std::cout
            << ( boost::format("jacobsthal(%1%) == %2%\n")
               % n % jacobsthal(n));
    }

    catch (std::exception&)
    {
        std::cerr << (boost::format("Usage: %1% N\n") % argv[0]);
        return 1;
    }  
}