Даны натуральное число [latex]n[/latex], действительное число [latex]x[/latex]. Вычислить: [latex]\sum_{i=1}^{n}{(\frac{1}{i!}+\sqrt{|x|})}[/latex];
n | x | Ответ |
2 | -4 | 5.5 |
3 | 4 | 7.6666 |
1 | 4 | 3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> #include <math.h> using namespace std; int main() { int n; cin >> n; double x, s=0, f=1, b; cin >> x; x=sqrt(fabs(x)); for(int i=1; i<=n; i++){ f=f*i; b=1/f; s+=b; } cout << s+n*x; return 0; } |
Переделайте, пожалуйста строчки 19 и 20 так, чтобы накапливать не факториал, а сразу то, что необходимо. Например, в 19-й будет f /= i
Готово, если я правильно понял, что вы имели в виду. Но уменьшилась точность вычислений. Для значений 3 и 4, вместо 7.6666, как раньше, теперь программа выдает 7.83333.
— Где отступы?
— Сделайте ссылку на Ваш код в ideOne, пожалуйста
— Ваша программа не проходит Ваших тестов. А тесты правильные.
— Корень из икс не меняется в пределах цикла. Можно сообразить сколько и вынести из цикла.
— Вы не делите на факториал. И даже не вычисляете его. Нужно догадаться чем очередной член ряда отличается от предыдущего.
— Нужно уделить внимание оформлению кода. По крайней мере нужно сделать правильные отступы. Здесь можно посмотреть как это сделать.
– Сделайте ссылку на Ваш код в ideOne, пожалуйста