0 / 0 / 0
Регистрация: 23.01.2014
Сообщений: 3
1
.NET 4.x

Прошу разобрать олимпиадные задачи

24.01.2014, 19:36. Показов 1512. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте наткнулся на олимпиадные задачи, не могу понять как их решить, не получается выразить это в коде. Прошу помочь с составлением алгоритмов. Спасибо
Задача 1

Палиндром

Дано произвольное целое число N (10≤N≤10000). Если оно не палиндром, нужно прибавить к нему число, состоящее из тех же цифр, но записанных в обратном порядке. Необходимо повторять эту операцию, пока не получится палиндром (если это возможно). Например, N = 49, 49 + 94 = 143, 143 + 341 = 484 (полученное число – палиндром). Напишите программу, которая определяет, можно ли из заданного числа N получить палиндром, и если возможно, то за какое минимальное количество операций. Если менее чем за 100 операций это сделать невозможно, вывести на экран -1.

Требования к входным данным: Значение целого числа N (10≤N≤10000) вводится с клавиатуры.
Требования к результату: Программа должна на экран минимальное количество операций для получения палиндрома или -1, если за 100 операций это сделать невозможно.

Пример входных данных и результатов работы программы
Входные данные // Результат
N=7227 // 0
N=49 // 2

Задача 2

Преподаватель математики Абай Нурланович придумал забавную игру с числами. Правила игры следующие: берется произвольное натуральное число N, переводится в двоичную систему счисления и получается некоторая последовательность из нулей и единиц. (Например, десятичное число 21 в двоичной системе запишется как 10101). Затем производится сдвиг цифр полученного двоичного числа по циклу (так, что последняя цифра становится первой, а все остальные сдвигаются на одну позицию вправо). Выписывая образующиеся при этом последовательности из нулей и единиц в столбик, Абай Нурланович подметил, что независимо от выбора исходного числа получающиеся последовательности начинают с некоторого момента повторяться. В итоге преподаватель находит максимальное из выписанных чисел и переводит его обратно в десятичную систему счисления, считая это число результатом проделанных манипуляций. Так, для числа 21 список последовательностей будет таким:

10101
11010
01101
10110
01011
10101

и результатом игры, следовательно, окажется число 26 (110102). Необходимо написать программу, которая бы помогла Абаю Нурлановичу получать результат игры без утомительных ручных вычислений.

Требования к входным данным: Значение натурального числа N вводится с клавиатуры, N < 109.

Требования к результату: Программа должна вывести на экран результат игры: единственное натуральное число, представленное в десятичной и двоичной системах счисления.

Пример входных данных и результатов работы программы:
Входные данные
N=21
N=19
Результат
26 (110102)
28 (111002)

Задача 3

В университете была введена новая дисциплина под названием «Веселая математика». В отличие от обычной математики числа здесь упорядочены не по возрастанию, а лексикографически, то есть как в словаре (сначала по первой цифре, затем, при равной первой цифре – по второй, и так далее). В данной науке используется не бесконечное множество натуральных чисел, а лишь первые N чисел. Так, например, если N=15, то числа в странной математике оказываются упорядочены следующим образом: 1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9.

Помогите студентам в изучении этой дисциплины – напишите программу, которая по заданному числу N находит место заданного числа K в порядке, определенном в веселой математике. Например, если N=15 и K=5, программа должна выдать в качестве ответа порядковый номер в последовательности равен 11.

Пример входных данных и результатов работы программы:

Входные данные
N=21; K=14
N=15; K=5
N=11; K=2

Результат
Порядковый номер 6
Порядковый номер 11
Порядковый номер 4
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.01.2014, 19:36
Ответы с готовыми решениями:

Олимпиадные задачи
Вопрос: имеет ли практический(коммерческий, денежный в будущем) смысл решения олимпиадных задач по...

Не могу разобрать требование задачи (простой)
Хоть и написал, что &quot;простой&quot;, я лишь занимаюсь самостоятельным разбором языка C#, и сижу через...

Олимпиадные задачи
Найти количество целых решений, удовлетворяющих неравенству: A &lt; B*x + C ≤ D. Формат...

Олимпиадные задачи
Вася очень любил играть в карты. Однажды он решил написать программу, которая за него будет...

1
Master of Orion
Эксперт .NET
6095 / 4951 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
24.01.2014, 19:44 2
Лучший ответ Сообщение было отмечено KXisann как решение

Решение

KXisann, ну первое насколько я понимаю, простое:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int GetPalindromeIterations(int n)
{
   if (n < 10 || n > 10000)
     throw new ArgumentException("n");
   long x = n;
   int i = 0;
   for(; i < 100; i++)
   {
      if (IsPalindrome(x))
         break;
      x += Reverse(x);
   }
   return i < 100? i : -1;
}
дальше вроде очень похожие. Несложные, в общем. тренируйтесь
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.01.2014, 19:44
Помогаю со студенческими работами здесь

Олимпиадные задачи
две задачи g-1 h-2

Олимпиадные задачи!
Помогите решить олимпиадные задачи: Задача 1. В группе подготовки космонавтов все...

Олимпиадные задачи :/
Здравствуйте! Недавно прошёл очередной тур олимпиады по программированию и мне стало интересно,...

Олимпиадные задачи
Даны задачи: Заранее спасибо.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru