Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2013, 18:44   #1
Sultanova
Пользователь
 
Аватар для Sultanova
 
Регистрация: 04.01.2013
Сообщений: 11
Радость C++. Задача на члены последовательности

Задача 9
Сколько членов последовательности надо просуммировать, чтобы сумма превысила данное значение S>0?
1/2, 1/3, 3/4, 3/5, 5/6, 5/7,...
Не могу понять , как сделать чредование числителя
Sultanova вне форума Ответить с цитированием
Старый 27.01.2013, 19:23   #2
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Как-то так
Код:
double Z =...; // задать лимит
int itr = 0;
double s = 0.0, x = 2.0, y = 1.0;
while (s <= Z) // суммировать пока не превысит лимит
{
	if (itr && !(itr % 2))
	    y += 2;
	s += y / x++;
	itr++;
}
// itr - количество последовательностей

Последний раз редактировалось EUGY; 27.01.2013 в 19:48. Причина: Исправил числитель
EUGY вне форума Ответить с цитированием
Старый 27.01.2013, 19:37   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
for(int i=1,j=1;s>0;){
 s+=i/++j; s+=i/++j;i=j;
}
Так?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.01.2013, 19:59   #4
Sultanova
Пользователь
 
Аватар для Sultanova
 
Регистрация: 04.01.2013
Сообщений: 11
Радость

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
for(int i=1,j=1;s>0;){
 s+=i/++j; s+=i/++j;i=j;
}
Так?
Гениально..Серьезно! Спасибо) Необычное решение. Однако там нужен цикл с постусловием и подсчет кол-ва, т.к. надо вывести показатель счетчика

Последний раз редактировалось Sultanova; 27.01.2013 в 20:19.
Sultanova вне форума Ответить с цитированием
Старый 27.01.2013, 20:03   #5
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Ещё как вариант
Код:
int i=1;
while (s <= Z) s+=(++i-i%2-1.0)/i;
eoln вне форума Ответить с цитированием
Старый 27.01.2013, 20:57   #6
Sultanova
Пользователь
 
Аватар для Sultanova
 
Регистрация: 04.01.2013
Сообщений: 11
По умолчанию вот программа

Код:
#include <iostream>
using namespace std;

int main() {
    
    double i=0,drob=0,chisl,znam,s,k=0;
    cin>>s;
    do{
        k++;
        i++;
        chisl=i;
        znam=i+1;
        drob+=chisl/znam;
        
        
    }while(drob<=s);
    cout<<i<<" "<<drob;
    return 0;
}
только что надо в числитель подставить, чтобы оно было 1, 1, 3, 3, 5, 5 .Помогите пожалуйста((((
Sultanova вне форума Ответить с цитированием
Старый 27.01.2013, 21:54   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Чтобы кто было чем?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
члены последовательности Олег112 Помощь студентам 0 08.11.2012 22:34
Даны натуральные числа n, q1, …, qn. Найти те члены qi последовательности q1, …, qn, которые bad9 Помощь студентам 0 08.06.2012 12:28
В заданной последовательности поменять местами максимальный и минимальный члены amegi Паскаль, Turbo Pascal, PascalABC.NET 2 22.01.2011 21:11
члены последовательности amikulia Помощь студентам 0 14.01.2011 12:35
Уподрядочить члены последовательности методом вставки. xitrec1zaraza Помощь студентам 0 27.11.2010 20:45