Решить пример записав его условие не используя массивы

196
17 марта 2018, 14:57

В начале пытался записать через for( int i = 1; i==256; i*2){} Но что-то пошло не так и я не смог понять,как делить до определенного делителя, не используя массивы

Answer 1

При расчете "снизу вверх" получается так:

var x = 5.0;
var xSquare = x * x;
var result = xSquare;
for (var i = 256; i >= 2; i /= 2)
    result = xSquare + i / result;
result = x / result;
Answer 2

Linq-вариант для полноты картины:

double x = 5;
double r = x * Enumerable.Range(0, 9).Aggregate(0.0, (t, i) => (1 << (8 - i)) / (x * x + t));
Console.WriteLine(r); // 0.19936603598533
Answer 3

Набросал кода, вроде выполняет вашу задачу.

int i = 256;
double x = 5;
double pow = Math.Pow(x, 2);
double result = pow;
while (i / 2 != 0)
{
    result = pow + (i / result);
    i /= 2;
}
result = x / (pow + result);
Answer 4

Рекурсивный вариант

double Calc(double x, int i = 1)
{
    if (i == 256) return x*x+i/(x*x);       
    if (i == 1) return x / Calc(x, 2);
    return x*x + i / Calc(x, i*2);
}
Console.WriteLine(Calc(5));

Который вернет ещё и верный ответ 0.19936603598533

READ ALSO
Где хранить временные файлы?

Где хранить временные файлы?

Нужна временная папка для хранения и обработки файловПрочитал на msdn, что можно воспользоваться Path

189
Где ошибка в кастомной реализации MD5?

Где ошибка в кастомной реализации MD5?

Дана кастомная реализация MD5, найденная на просторах сети

146
Округление числа до десятков и сотен

Округление числа до десятков и сотен

Я не знаю как написать код который будет округлять до десятков и сотенНапример у меня есть 365 и надо что бы его округляло к 370 или есть 350 и надо...

213