Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Blackscorpion
 Аватар для Blackscorpion
0 / 0 / 0
Регистрация: 29.11.2011
Сообщений: 11
#1

Дано натуральное число n - C++

20.01.2012, 14:08. Просмотров 546. Ответов 8
Метки нет (Все метки)

S=1-1/2+1/4-1/8+...+(-1)степень n*1/2 степень n
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.01.2012, 14:33     Дано натуральное число n #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
 
double pow( double base, int exp )
{
   size_t i;
   double res = 1;
 
   if ( exp < 0 )
      res = pow ( 1 / base , -1 * exp );
 
   for ( i = 0 ; i < (size_t) exp ; ++i )
      res *= base;
   return res;
}
 
double function(size_t n)
{
   double result = 1.0;
   size_t i;
   for ( i = 1 ; i < n ; ++i )
      result += (pow(-1., i) * pow(1. / 2, i));
   return result;   
}
 
int main(void)
{
   size_t n = 4;
   printf ("%.2lf", function(n) );
   return 0;
}
http://liveworkspace.org/code/b7a20c...8e892586a96c56

Добавлено через 41 секунду
В следующий раз пишите нормально формулу, минут 5 лишних "копался", покуда по вашей написал.
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
20.01.2012, 14:58     Дано натуральное число n #3
go,
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
double go_pow( double base, int exp )
{
   size_t i;
   double res = 1;
 
   if ( exp < 0 )
      res = go_pow ( 1 / base , -1 * exp );
 
   for ( i = 0 ; i < (size_t) exp ; ++i )
      res *= base;
   return res;
}
 
int main(void){
    printf("%f\n", go_pow(2.0, -2));
    return 0;
}
уходит в бесконечный цикл
http://codepad.org/Y9FlIfGR
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.01.2012, 15:18     Дано натуральное число n #4
easybudda, -2 уже натуральное число?

Добавлено через 2 минуты
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
 
double pow( double base, int exp )
{
   size_t i;
   double res = 1;
 
   if ( exp < 0 )
      res = pow ( 1 / base , -1 * exp );
   else
   {   
      for ( i = 0 ; i < (size_t) exp ; ++i )
         res *= base;
   }      
   return res;
}
 
double function(size_t n)
{
   double result = 1.0;
   size_t i;
   for ( i = 1 ; i < n ; ++i )
      result += (pow(-1., i) * pow(1. / 2, i));
   return result;   
}
 
int main(void)
{
   size_t n = 4;
   printf ("%.2lf", function(n) );
   return 0;
}
http://liveworkspace.org/code/390ba9...bb2ca27dd1eaa9


easybudda, специально для Вас
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
 
double go_pow( double base, int exp )
{
   size_t i;
   double res = 1;
 
   if ( exp < 0 )
      res = go_pow ( 1 / base , -1 * exp );
   else
   {
      for ( i = 0 ; i < (size_t) exp ; ++i )
         res *= base;
   }
   return res;
}
 
int main(void){
        printf("%f\n", go_pow(2.0, -2));
        return 0;
}
http://codepad.org/4LEP30ae

Добавлено через 1 минуту
Цитата Сообщение от easybudda Посмотреть сообщение
уходит в бесконечный цикл
скорее в рекурсию
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
20.01.2012, 15:22     Дано натуральное число n #5
Цитата Сообщение от go Посмотреть сообщение
-2 уже натуральное число?
Ну функция возведения в степень тем не менее должна правильно работать, иначе к чему вообще было
Цитата Сообщение от go Посмотреть сообщение
if ( exp < 0 )
? Кстати, я в задании и запрета на использование стандартной pow не заметил...
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.01.2012, 15:28     Дано натуральное число n #6
Цитата Сообщение от easybudda Посмотреть сообщение
Ну функция возведения в степень тем не менее должна правильно работать, иначе к чему вообще было
Согласен. Мой промах.

Цитата Сообщение от easybudda Посмотреть сообщение
? Кстати, я в задании и запрета на использование стандартной pow не заметил...
не нужен он здесь.
Том Ардер
Модератор
 Аватар для Том Ардер
3664 / 2283 / 278
Регистрация: 15.06.2009
Сообщений: 4,000
20.01.2012, 15:36     Дано натуральное число n #7
http://www.cyberforum.ru/cgi-bin/latex.cgi?S=\sum_{n=0}^{}{\left(-\frac{1}{2} \right)}^{n}

Сумма бесконечной геометрической прогрессии

http://www.cyberforum.ru/cgi-bin/latex.cgi?S=\frac{1}{1-\frac{-1}{2}}=\frac{2}{3}


C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <math.h>
 
int main(void)
{
    double eps = 1.e-5;
    double sum = 0;
    double an =1;
 
    while( fabs(an) > eps )
    {
        sum += an;
        an = -an/2;
    }
    printf("series\t%f\tcorrect\t%f\n", sum, 2./3.);
    return 0;
}
http://codepad.org/jcH26oji
go
Эксперт C++
3584 / 1364 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
20.01.2012, 15:38     Дано натуральное число n #8
Том Ардер, тут n-ую сумму найти необходимо...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.01.2012, 15:48     Дано натуральное число n
Еще ссылки по теме:

C++ дано натуральное число
C++ дано натуральное число
Дано натуральное число n C++
C++ Дано натуральное число n
Дано натуральное число N C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Том Ардер
Модератор
 Аватар для Том Ардер
3664 / 2283 / 278
Регистрация: 15.06.2009
Сообщений: 4,000
20.01.2012, 15:48     Дано натуральное число n #9
Если сумма конечного числа слагаемых, то:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int main(void)
{
    double sum = 0;
    double an = 1;
    int n = 20;
    int k;
 
    for( k = 0; k < n; k++ )
    {
        sum += an;
        an = -an/2;
    }
    printf("n =%5d\tsum = %f\n", n, sum);
    return 0;
}
http://codepad.org/VeaqVYCY
Yandex
Объявления
20.01.2012, 15:48     Дано натуральное число n
Ответ Создать тему
Опции темы

Текущее время: 17:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru