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

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

Войти
Регистрация
Восстановить пароль
 
SHaRoM
0 / 0 / 0
Регистрация: 13.05.2012
Сообщений: 5
#1

Задачка на алгоритмы - C++

21.05.2012, 20:56. Просмотров 303. Ответов 3
Метки нет (Все метки)

По правилу n -> n/2 (если n четно), n -> 3n + 1 (если n нечетно)
строится
последовательность чисел. Например, стартуя с 13, получим:
13 -> 40 -> 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1
В этой последовательности 10 элементов. Известно, что любая такая
последовательность рано или поздно завершится единицей. Найти 1 <= x
<= 10^6,
что начиная с x последовательность будет иметь наибольшую длину.

необходимо свести перебор к минимуму

известно что это число 837799 и длина цепочки 525
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2012, 20:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Задачка на алгоритмы (C++):

Алгоритмы С++ - C++
Написать программу календарь, которая при вводе даты выдает день недели

Алгоритмы на C++ - C++
Вот решил приобрести себе такую ​​книгу. http://www.ozon.ru/context/detail/id/5531965/ Книга вроде не плохая, но там нет описания всех...

Алгоритмы - C++
case 2:{ int n1; int n2; do{ cout &lt;&lt; &quot;Введите номер словаря в который хотите добавить ячейку: ...

задачка на с++ - C++
сделать таблицу размером N*N каждая строка и каждый столбец который содержит все числа от 1до N помогите не пойму как делать

Задачка - C++
Помогите в решени Перепишите задание в сообщение.

задачка с++ - C++
#include &lt;iostream&gt; using namespace std; int main() { int a;int i,j,z,y; cout&lt;&lt;&quot;vvedite el-tu massiva:&quot;; ...

3
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
21.05.2012, 21:33 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <math.h>
#include <locale.h>
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
    int len = 0; __int64 n = 837799;
    while (n > 1)
    {
        printf("%d ",n);
        if (n % 2) n = 3 * n + 1;
        else n = n / 2;
        len++;
    }
 
    printf("\n\nДлина последовательности len = %d\n",len+1);
 
    return 0;
}
0
SHaRoM
0 / 0 / 0
Регистрация: 13.05.2012
Сообщений: 5
21.05.2012, 22:06  [ТС] #3
zitxbit, нет. надо найти это число x . то что оно равно 837799 было выяснено при переборе всех значений.
надо предложить алгоритм по которому мы найдем это число
0
SHaRoM
0 / 0 / 0
Регистрация: 13.05.2012
Сообщений: 5
22.05.2012, 22:41  [ТС] #4
вверх
0
22.05.2012, 22:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2012, 22:41
Привет! Вот еще темы с ответами:

задачка c++ - C++
дан текстоавй файл включающий строки, содержащие цифры 1,3,4 5 8,2,3,5,8 2,7 написать програму, которая сделает выходной...

Задачка - C++
Ребят, может кто срочно решить задачу? Описать структуры, описывающие шар и точку в 3-мерном пространстве. Определить функцию, которая...

Задачка - C++
Здравствуйте, есть задачка: &quot;Вводится строка, потом вводится символ. Далее нужно в строке убрать все эти символы, и сместить строку на...

Задачка C++ - C++
Помогите с еще одной, пожалуйста. Вот так вот выглядит: Z=(∏_(i=0)^7▒(m(i)-1) +∏▒〖(c(k)-5))/(〗 ∏_(j=0)^6▒K(j) -∏_(i=0)^7▒〖m(j)〗 Тут...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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