Версия, подходяща за принтиране
Кликни тук, за да видиш темата в оригиналният и вид
BG Development Форуми > .NET програмиране > Помощ за задача на C#


Публикувано от: m0ns7er 15-01-2019, 18:35
Здравейте icon_smile.gif
Имам нужда от помощ за решение на задача на C#
Задачата е -
Пресметнете
user posted image

Успях да реша Г) подточка, но при Д),Е) и Ж) каквото и да правя не ми се получава...
Това е кода ми за подточка Д) който не е верен:
CODE

double sum=0;

    for (int i = 1,j = 1; i <= 5; i++,j++)
       {

          sum = Math.Pow(Math.Sqrt(i), j);
      }
          Console.WriteLine("Suma " + sum);



Моля за помощ за трите подточки.
Благодаря ви предварително icon_smile.gif

Публикувано от: stewie 15-01-2019, 18:39
Math.Pow(x, 1/n) - обърни n-тия корен.

Публикувано от: m0ns7er 15-01-2019, 18:56
Когато го направя:
sum = Math.Pow(Math.Sqrt(i),1/j);
Пак не се получава ...

Публикувано от: Gamma Goblin 15-01-2019, 19:09
D: получих 57.34541614826637


CODE
fn main() {
   let mut sum: f64 = 0.0;

   for i in 1..=49 {
       let i = i as f64;
       sum += i.powf(1.0 / i);
   }

   println!("{}", sum);
}

Публикувано от: Gamma Goblin 15-01-2019, 19:23
Е: дано не съм се оплел с рекурсията: 1.7579327566180045


CODE

fn main() {
   let mut sum: f64 = pow_sum(1, 49);
   println!("{}", sum);
}

fn pow_sum(iter: i32, max_iter: i32) -> f64 {
   if iter == max_iter {
       return (iter as f64).sqrt();
   }

   return (iter as f64 + pow_sum(iter + 1, max_iter)).sqrt();
}

Публикувано от: Gamma Goblin 15-01-2019, 19:29
Ж е същото като Е. Това tg() не знам какво е, приемам че е тангенс: -1.3465445407083565


CODE
fn main() {
   let sum: f64 = tg_sum(1, 100);
   println!("{}", sum);
}

fn tg_sum(iter: i32, max_iter: i32) -> f64 {
   if iter == max_iter {
       return (iter as f64).tan();
   }

   return (iter as f64 + tg_sum(iter + 1, max_iter)).tan();
}

Публикувано от: Gamma Goblin 15-01-2019, 19:30
Сега за упражнение ги напиши без рекурсия, която е прекалено сложна за всеки здравомислещ човек и хората избягват да я ползват щото води до stack overflows icon_sad.gif

Публикувано от: m0ns7er 15-01-2019, 19:32
Когато го сметна в Web2.0Calc получавам този резултат(Смятам го само до 5 защото иначе трябва да напиша всички числа до 49 icon_lol.gif):
user posted image

А в кода ми когато го сметна до 5 получавам резултат: 5.75397012826946

Това е кода ми:
CODE
double sum=0;

           for (int i = 0,j = 0; i <= 5; i++,j++)
           {

               sum += Math.Pow(Math.Sqrt(i),1.0/j);
           }
           Console.WriteLine("Suma " + sum);

Публикувано от: Gamma Goblin 15-01-2019, 19:37
QUOTE (m0ns7er @ 15-01-2019, 19:32)
Когато го сметна в Web2.0Calc получавам този резултат(Смятам го само до 5 защото иначе трябва да напиша всички числа до 49 icon_lol.gif):
user posted image

А в кода ми когато го сметна до 5 получавам резултат: 5.75397012826946

Това е кода ми:
CODE
double sum=0;

           for (int i = 0,j = 0; i <= 5; i++,j++)
           {

               sum += Math.Pow(Math.Sqrt(i),1.0/j);
           }
           Console.WriteLine("Suma " + sum);

ми грешен ти е кода - моя показва толкова като на картинката

даже не знам как не ти гърми още на първата итерация - J ти е 0 и ти се опитваш да делиш на 0; смени J да започва от 1 и ще се оправи и махни тва Math.Sqrt(i) и го смени само с И което също да почва от 1

Публикувано от: m0ns7er 15-01-2019, 19:42
Оправи се
Благодаря ти Gamma Goblin

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)