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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.90
dsaasd
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 5
#1

циклы в С++ за 21 день - C++

24.04.2009, 10:48. Просмотров 2413. Ответов 19
Метки нет (Все метки)

Начал изучать С++ по книжке "С++ за 21 день". Очень понравилось не знаю то ли язык,то ли просто программирование. Однако с циклами тупик не могу понять на примере и все тут. Народ кому не лень помогите пожалуста на конкретном примере! может какую схему или подробно разжевать? буду оч признателен.
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
33
34
// Листинг 7.15.
// нахождение n-го члена ряда Фибоначчи
// с помощью цикла
#include <iostream>
using namespace std;
 
int fib(int position);
int main()
{
int unsigned answer, position;
    cout << "Which position? ";
    cin >> position;
    cout << "\n";
    answer=fib(position);
    cout << answer << " is the ";
cout << position << " Fibonaccim number.\n";
    cin.get();
    return 0;
}
int fib(int n)
{
    int minusTwo=1, minusOne=1, answer=2; //тут начинаются непонятки
    if(n<3)
        return 1;
    for (n-=3; n; n--)
    {
        minusTwo=minusOne;
     minusOne=answer;
        answer=minusOne+minusTwo;
    }
    cin.get();
    return answer;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2009, 10:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос циклы в С++ за 21 день (C++):

Задача на циклы. Начав тренировки, спортсмен в первый день пробежал 10 км. - C++
Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой...

Определить в какой день лыжник пробежит заданное расстояние (циклы) - C++
Начав тренировки лыжник в первый день пробежал N км. Каждый следующий день он увеличивал длину пробега на 10% от пробега предыдущего дня....

Вводится k-й день невисокосного года - определить, является ли этот день рабочим. - C++
Вводится k-й (1&lt;=k&lt;=365) день невисокостного года, в котором 1 января – понедельник. Определить, является ли этот день рабочим, если...

Дана дата в формате день:месяц:год. Определить день недели - C++
Задание: Дана дата в формате день:месяц:год. Определить день недели.

Циклические алгоритмы,Начав тренироваться, лыжник в первый день пробежал n км. Каждый следующий день - C++
Начав тренироваться, лыжник в первый день пробежал n км. Каждый следующий день он увеличивал пробег на 10% от пробега предыдущего дня. В...

Определить, на какой день недели проходится k-й день невисокосного года в котором 1 января - понедельник - C++
вводится k-й день года (1&lt;=k&lt;=365).Определить и вывести,на какой день недели проходится k-й день невисокосного года в котором 1...

19
RazorQ
577 / 344 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
24.04.2009, 11:08 #2
Ряд Фибоначи представляет собой линейку чисел, каждое следующее число равно сумме двух предыдущих. Т.е.
1 1 2 3 5 8 13 21 34
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
33
34
35
// Листинг 7.15.
// нахождение n-го члена ряда Фибоначчи
// с помощью цикла
#include <iostream>
using namespace std;
 
int fib(int position);
int main()
{
int unsigned answer, position;
cout << "Which position? ";
cin >> position;
cout << "\n";
answer=fib(position);
cout << answer << " is the ";
cout << position << " Fibonaccim number.\n";
cin.get();
return 0;
}
int fib(int n)
{
int minusTwo=1, minusOne=1, answer=2; //Первые два числа будут единицами
if(n<3) // ряд: 1 1 2. Т.е. если позиция меньше трёх, то это точно 1
return 1; 
for (n-=3; n; n--) // а здесь не учитывая две 1(мы их уже объявили), мы находим 
                     //   сумму
{
minusTwo=minusOne;
minusOne=answer;
answer=minusOne+minusTwo;
}
cin.get();
return answer; // возвращаем сумму. Это и будет число на позиции n
 
}
0
jds_07
28 / 27 / 1
Регистрация: 12.03.2009
Сообщений: 85
24.04.2009, 11:18 #3
Сумма цифр
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main() {
    int num, sum;
 
    cout << "Enter num: "; cin >> num;
    sum = 0;
    while (num != 0) {
        sum = sum + num % 10;
        num = num / 10;
    }
    cout << "Sum: " << sum << endl;
    system("pause");
    return 0;
}
0
RazorQ
577 / 344 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
24.04.2009, 11:20 #4
jds_07, нужна не сумма цифр, а n'ый элемент ряда фибоначи.
0
dsaasd
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 5
24.04.2009, 12:54  [ТС] #5
Наконец то въехал! Спасибо тебе RazorQ!
0
jds_07
28 / 27 / 1
Регистрация: 12.03.2009
Сообщений: 85
24.04.2009, 13:10 #6
long Fibonacci(long k) {
if ((k == 1) || (k == 0)) {
return 1;
} else {
return Fibonacci(k - 1) + Fibonacci(k - 2);
}
}
0
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
24.04.2009, 13:53 #7
С++ по книжке "С++ за 21 день".
эта таже книга что и Джеса Либерти "С++ за 24 часа".
0
ISergey
Maniac
Эксперт С++
1375 / 886 / 52
Регистрация: 02.01.2009
Сообщений: 2,661
Записей в блоге: 1
24.04.2009, 13:57 #8
Цитата Сообщение от Мегатрон Посмотреть сообщение
С++ по книжке "С++ за 21 день".
эта таже книга что и Джеса Либерти "С++ за 24 часа".
это годость а не книгы.!
0
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
24.04.2009, 14:15 #9
и чем она плоха
0
ISergey
Maniac
Эксперт С++
1375 / 886 / 52
Регистрация: 02.01.2009
Сообщений: 2,661
Записей в блоге: 1
24.04.2009, 14:25 #10
Мне только названия хватает. Может синтаксис языка С++ и выучишь за 21 день, но писать на нём точно не научишься.
ИМХО это равносильно "Японский за 21 день" или "Английский за 24 часа".
0
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
24.04.2009, 14:27 #11
но писать на нём точно не научишься.
а вдруг гений
0
BadMadCat
0 / 0 / 0
Регистрация: 23.04.2009
Сообщений: 6
24.04.2009, 14:34 #12
Цитата Сообщение от ISergey Посмотреть сообщение
Мне только названия хватает. Может синтаксис языка С++ и выучишь за 21 день, но писать на нём точно не научишься.
ИМХО это равносильно "Японский за 21 день" или "Английский за 24 часа".
так как знаю уже один язык программирования полностью согласен, нужно уметь составлять алгоритм и решать задачу на "бумаге", а синтаксис легко выучить за небольшой промежуток времени, лишь опыт сделает из человека программиста.
0
Мегатрон
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 355
24.04.2009, 14:35 #13
уметь составлять алгоритм и решать задачу на "бумаге",
вот с этим у меня проблемы
а синтаксис вроде понятный
0
ISergey
Maniac
Эксперт С++
1375 / 886 / 52
Регистрация: 02.01.2009
Сообщений: 2,661
Записей в блоге: 1
24.04.2009, 14:39 #14
Цитата Сообщение от Мегатрон Посмотреть сообщение
а вдруг гений
Тогда возможно. Но гениев очень мало.
лишь опыт сделает из человека программиста.
Во во именно оно!

Добавлено через 2 минуты 41 секунду
Цитата Сообщение от Мегатрон Посмотреть сообщение
вот с этим у меня проблемы
ну это засада. без этого ни как.
0
dsaasd
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 5
24.04.2009, 18:23  [ТС] #15
Цитата Сообщение от jds_07 Посмотреть сообщение
long Fibonacci(long k) {
if ((k == 1) || (k == 0)) {
return 1;
} else {
return Fibonacci(k - 1) + Fibonacci(k - 2);
}
}
Спасибо конечно тебе jds_07, но с оператором if мне все понятно.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.04.2009, 18:23
Привет! Вот еще темы с ответами:

Циклические алгоритмы,Начав тренироваться, лыжник в первый день пробежал n км. Каждый следующий день он увелич - C++
Начав тренироваться, лыжник в первый день пробежал n км. Каждый следующий день он увеличивал пробег на 10% от пробега предыдущего дня. В...

День недели, выпадающий на дату d1, если известно, что в первый день нашей эры был понедельник - C++
Помогите пожалуйста!! день недели, выпадающий на дату d1, если известно, что в первый день нашей эры был понедельник.

Заменить в коде циклы for на циклы while - C++
int i, j, n; bool a; cin &gt;&gt; i &gt;&gt; n; for (i; i&lt;n; i++) { a = true; for (j = 2; j &lt;= i / 2; j++) if ((i%j) == 0) a =...

Создайте класс «Дата» со свойствами год, високосный год, месяц, день месяца и день недели - C++
Создайте класс «Дата» со свойствами год, високосный год, месяц, день месяца и день недели. Создайте для него метод котрый бы...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
24.04.2009, 18:23
Ответ Создать тему
Опции темы

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