Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/14: Рейтинг темы: голосов - 14, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 5
1

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

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

Author24 — интернет-сервис помощи студентам
Начал изучать С++ по книжке "С++ за 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.04.2009, 10:48
Ответы с готовыми решениями:

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

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

Циклы: Спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивает дневную норму на 10%
Начав тренировки. Спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивает...

Циклы с постусловием и предусловием. Определить в какой день лыжник пробежит больше 20 км
Практическая работа Задание 4. Начав тренировки, лыжник в первый день пробегал 10 км. Каждый...

19
591 / 357 / 16
Регистрация: 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
28 / 27 / 11
Регистрация: 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
591 / 357 / 16
Регистрация: 06.02.2009
Сообщений: 1,386
24.04.2009, 11:20 4
jds_07, нужна не сумма цифр, а n'ый элемент ряда фибоначи.
0
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 5
24.04.2009, 12:54  [ТС] 5
Наконец то въехал! Спасибо тебе RazorQ!
0
28 / 27 / 11
Регистрация: 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
Сообщений: 348
24.04.2009, 13:53 7
С++ по книжке "С++ за 21 день".
эта таже книга что и Джеса Либерти "С++ за 24 часа".
0
Maniac
Эксперт С++
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
24.04.2009, 13:57 8
Цитата Сообщение от Мегатрон Посмотреть сообщение
С++ по книжке "С++ за 21 день".
эта таже книга что и Джеса Либерти "С++ за 24 часа".
это годость а не книгы.!
0
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 348
24.04.2009, 14:15 9
и чем она плоха
0
Maniac
Эксперт С++
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
24.04.2009, 14:25 10
Мне только названия хватает. Может синтаксис языка С++ и выучишь за 21 день, но писать на нём точно не научишься.
ИМХО это равносильно "Японский за 21 день" или "Английский за 24 часа".
0
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 348
24.04.2009, 14:27 11
но писать на нём точно не научишься.
а вдруг гений
0
0 / 0 / 0
Регистрация: 23.04.2009
Сообщений: 6
24.04.2009, 14:34 12
Цитата Сообщение от ISergey Посмотреть сообщение
Мне только названия хватает. Может синтаксис языка С++ и выучишь за 21 день, но писать на нём точно не научишься.
ИМХО это равносильно "Японский за 21 день" или "Английский за 24 часа".
так как знаю уже один язык программирования полностью согласен, нужно уметь составлять алгоритм и решать задачу на "бумаге", а синтаксис легко выучить за небольшой промежуток времени, лишь опыт сделает из человека программиста.
0
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 348
24.04.2009, 14:35 13
уметь составлять алгоритм и решать задачу на "бумаге",
вот с этим у меня проблемы
а синтаксис вроде понятный
0
Maniac
Эксперт С++
1464 / 965 / 160
Регистрация: 02.01.2009
Сообщений: 2,820
Записей в блоге: 1
24.04.2009, 14:39 14
Цитата Сообщение от Мегатрон Посмотреть сообщение
а вдруг гений
Тогда возможно. Но гениев очень мало.
лишь опыт сделает из человека программиста.
Во во именно оно!

Добавлено через 2 минуты 41 секунду
Цитата Сообщение от Мегатрон Посмотреть сообщение
вот с этим у меня проблемы
ну это засада. без этого ни как.
0
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
Заблокирован
24.04.2009, 19:00 16
Цитата Сообщение от dsaasd Посмотреть сообщение
Цитата:
Сообщение от jds_07
C
1
2
3
4
5
6
7
long Fibonacci(long k) {
if ((k == 1) || (k == 0)) {
return 1;
} else {
return Fibonacci(k - 1) + Fibonacci(k - 2);
}
}
Спасибо конечно тебе jds_07, но с оператором if мне все понятно.
тут не только оператор if, но еще рекурсия - неуверен только что в книжке "за 21 день..." эта тема нормально раскрыта(врядли дальше факториала зайдет)
0
нубик программист)
96 / 10 / 0
Регистрация: 04.06.2008
Сообщений: 348
24.04.2009, 19:09 17

ну если
long Fibonacci(long k) {
if ((k == 1) || (k == 0)) { //если к=1 или к=0 то возвратить 1
return 1;
} else { // если нет то Fibonacci(k - 1) + Fibonacci(k - 2);

return Fibonacci(k - 1) + Fibonacci(k - 2);
}
}
0
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 5
24.04.2009, 21:16  [ТС] 18
Цитата Сообщение от rrrFer Посмотреть сообщение
тут не только оператор if, но еще рекурсия - неуверен только что в книжке "за 21 день..." эта тема нормально раскрыта(врядли дальше факториала зайдет)
Я просто не правильно выразился.
int fib(int n)
{
cout << "Processing fib("<< n <<")...";
if (n < 3)
{
cout << "Return 1!\n";
return (1);
}
else
{
cout << "Call fib(" << n-2 <<") and fib (" << n-1 <<").\n";
return (fib(n-2)+fib(n-1));
тут мне все понятно было изночально. в книге все подробно написанно и дана схема
0
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 9
24.04.2009, 21:19 19
пропал рабочий стол, страница приветствия, что делать? помогите!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0
0 / 0 / 0
Регистрация: 24.04.2009
Сообщений: 5
24.04.2009, 21:46  [ТС] 20
Все народ я уже разобрался с циклами. пошел дальше грысть гранит сами знаете чего. Всем откликнувшимся СПАСИБО!
p.s
Классный сайт я пожалуй тут поселюсь.
0
24.04.2009, 21:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.04.2009, 21:46
Помогаю со студенческими работами здесь

Определить день недели, на который приходится день с датой d (день), m (месяц)
Считая, что год не високосный и его 1 января приходится на день недели wd1, определиь wd -день...

Циклы с условием, циклы с переменной, вложенные циклы
С условием 1. Ввести натуральное число N и вычислить сумму всех чисел фибоначчи меньших N....

На овощную базу привезли помидоры. В первый день 8 машин по а ящиков; во второй день 6 машин по в ящиков в каждой. В какой день помидоров привезли бол
На овощную базу привезли помидоры. В первый день 8 машин по а ящиков; во второй день 6 машин по в...

Циклы. Напечатать числа в виде таблицы, используя только циклы
Напечатать числа в виде таблицы, используя только циклы (массивы и строки не применять): ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru