2013-10-07 4 views

ответ

1

Поскольку 1/1 является 1 и 0 = 1/2 (1/3 = 0 ....)

Так что нам нужно сделать 1.0/(double) i

Затем 1,0/2,0 = 0,5

#include <iostream> 

double m(int i) 
    { 
     if (i == 1) 
     return 1; 
     else 
     return (1.0/(double) i) + m(i -1); 
    } 

int main(int,char**) { 
    double value=m(5); 
    std::cout << value << "\n"; 
    return 0; 
} 
+0

Я тип экспликации выставлял его, и теперь получаю правильный результат. Спасибо – user2809437

+0

@ user2809437 Yup, '1.0' double,' 1.0f' - это float, '1' - int, вы должны искать неявные приведения для фундаментальные типы. Не забудьте поднять и принять ответ :) –

Смежные вопросы