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

Задача про числа Коллатца - C++

Восстановить пароль Регистрация
 
Sociopath
 Аватар для Sociopath
3 / 3 / 0
Регистрация: 26.09.2012
Сообщений: 28
22.01.2013, 07:13     Задача про числа Коллатца #1
Даны 2 числа, i j. Нужно вывести максимальную длину цикла для последовательности Коллатца (если An четно, то An+1 = An/2, если нет, то An+1=An*3+1) Программу написал, но elJudge говорит, что ответ неверен. Формат вывода - i j answer, через пробел.
Начинаю постигать C++ - way, так что приму советы по стилю программирования.
Код такой:
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 <iostream>
int lengthLoop(int);
int main()
{
    using namespace std;
    int n, i, j, max;
    max = 0;
    while (cin >> i >> j){
    for (n = i; n<=j; n++){
    if (max < lengthLoop(n))
        max = lengthLoop(n);
        }
    cout << i << " "  << j <<" " << max << endl;
    max = 0;
    }
    return 0;
}
int lengthLoop(int i){
    using namespace std;
    int total;
    total = 1;
    while (i != 1){
        if (i%2 == 0){ 
            i=i/2;
            ++total;}
        else {
            i=3*i+1;
            ++total;}
        }
    return total;
    //cout << total << endl;
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2013, 07:13     Задача про числа Коллатца
Посмотрите здесь:

C++ Задача про слона 0о
Задача про простые числа. C++
Задача про матрицу C++
C++ Задача про буквы
C++ задача про N ферзей
C++ Задача про дату!
Задача про комплексные числа(закрытые переменные) C++
C++ задача про Перегоны

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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