Список форумов Шадринский форум ->  Место встречи -> Про космический туризм -> Задачка с баша
Начать новую тему   Ответить на тему   вывод темы на печать

Задачка с баша

Автор
Сообщение
MARIE
Заслуженный писатель


Пол: Пол:Жен.
Зарегистрирован: 14.12.2006
Сообщения: 1433


Статус: Offline
СообщениеДобавлено: 2007.12.05 00:19.42
Ответить с цитатой
пусть исходное число - А, полученное - В
начинаем с последней цифры числа А, т.е. с двойки
каждая последующая цифра числа А должна быть в 2 раза меньше предыдущей, т.е. для того, чтобы узнать, какая цифра предшествует конечной "двойке" в числе А, надо 2*2=4, перед "четверкой" : 4*2=8 и т.д.
если получается 2-значное число, то мы (как при счете столбиком в 5 классе) единицы записываем, а число десятков запоминаем и потом прибавляем к следующей полученной цифре
и так до тех пор, пока не получим 10 (т.к. первая цифра числа А должна быть в 2 раза меньше первой цифры числа В, т.е. "двойки")

в общем, получилось, что расчетов никаких не было, простые арифметические действия

Добавлено спустя 1 минуту 8 секунд:

простите, если непонятно, я не спец по объяснению решений математических задачек
_________________
ночь и тишина я слышу каждую звезду
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
neil
Писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 674
Откуда: Shadrinsk

Статус: Offline
СообщениеДобавлено: 2007.12.05 00:22.45
Ответить с цитатой
вон люди оказываются думают.. а мы компы заставляем считать )
Посмотреть профиль Отправить личное сообщение ICQ Number
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2007.12.05 00:32.21
Ответить с цитатой
{ (c) Char }
var s:string; a,b:byte;
begin s:=''; a:=2; b:=0;
repeat s:=chr(a+48)+s; a:=a*2+b; b:=a div 10; a:=a mod 10; until a=0;
s:='10'+s; writeln(s); end.


Посмотреть профиль Отправить личное сообщение
VM
ghost


Пол: Пол:Муж.
Зарегистрирован: 13.10.2006
Сообщения: 1368
Откуда: а вот

Статус: Offline
СообщениеДобавлено: 2007.12.05 00:44.57
Ответить с цитатой
MARIE
мда... низкмй вам поклон ничего особо гениалного))
бедный мой комп))))) он сидел проверял все числа заканчивающиеся на "2", начиная с "2"

Добавлено спустя 4 минуты 50 секунд:

char
ыы)) не люблю строковые типы))))

БУ! :

uses crt;
var a,b,n,m:real;
i:byte;
begin
a:=-8;
while 1<2 do
begin
i:=0;
a:=a+10;
m:=a;
while m<>0 do
begin
n:=m;
m:=int(n/10);
i:=i+1;
end;
b:=2*power(10,i)+int(a/10);
if b=a*2 then
break;
end;
write(a);
end.

Добавлено спустя 2 минуты 42 секунды:

VM писал(а):
moishe
лови решение))

все, уже не лови)))) обнародовали))
_________________
Не бывает безвыходных ситуаций. Есть только ситуации, выход из которых тебя не устраивает...
Я вернулся =)
Посмотреть профиль Отправить личное сообщение ICQ Number
moishe
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1668


Статус: Offline
СообщениеДобавлено: 2007.12.05 01:12.59
Ответить с цитатой
Задача конечно же решается в уме. Цифры получаются по одной справа налево. Поскольку их довольно много (18), целесообразно использовать бумажку и ручку. Алгоритм, при помощи которого генерируются цифры, изложил char на формальном языке и MARIE на неформальном. В основе алгоритма - сложение "столбиком". Программу, которую написал VM, я не понял.

Добавлено спустя 7 минут 46 секунд:

А, вроде понял. Он проверяет все числа, заканчивающиеся на 2, обладают ли они требуемым свойством. То есть, последовательно проверяет: 2, 12, 22, 32, 42, 52, .... Причем сам алгоритм перебора тоже довольно... э-э-э.. своеобразный. Что-то я сомневаюсь, что емкости типа real достаточно для точного хранения 18-значного числа. Поясните, знатоки паскаля, сколько значащих цифр влазит в real?
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
Лолита
сволочь ненаглядная


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 9198
Откуда: Тель-Авив

Статус: Offline
СообщениеДобавлено: 2007.12.05 08:51.56
Ответить с цитатой
Minya писал(а):
как из этого может получиться твоё

кряква, це шутко была.
_________________
"Ну случайно, ну шутя, сбилась с верного путя! Так ведь я - дитя природы, пусть дурное, но - дитя..." Л. Филатов.
Посмотреть профиль Отправить личное сообщение ICQ Number
breaker
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2005
Сообщения: 1939
Откуда: Шадринск

Статус: Offline
СообщениеДобавлено: 2007.12.05 11:09.19
Ответить с цитатой
moishe писал(а):
]сколько значащих цифр влазит в real?


Вещественный тип real (6 байт):
Диапазон: 2.9E-39 - 1.7E38

11-12 значащих цифр

для точного хранения 18-значного числа имхо недостаточно

А задачко красивая))
_________________
Не бывает вечных двигателей. Бывают только вечные тормоза.
Посмотреть профиль Отправить личное сообщение
VM
ghost


Пол: Пол:Муж.
Зарегистрирован: 13.10.2006
Сообщения: 1368
Откуда: а вот

Статус: Offline
СообщениеДобавлено: 2007.12.05 12:46.35
Ответить с цитатой
так и не проверил на работоспособность эту прогу...
я сначала хотел использовать extended (10 байт) или doble (8 байт) но ни то ни то паскаль не понял, может у кого есть версия поновее? кроме 7 турбо...

Добавлено спустя 23 секунды:

breaker писал(а):
для точного хранения 18-значного числа имхо недостаточно

теоретически должно хватить
_________________
Не бывает безвыходных ситуаций. Есть только ситуации, выход из которых тебя не устраивает...
Я вернулся =)
Посмотреть профиль Отправить личное сообщение ICQ Number
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2007.12.05 12:46.51
Ответить с цитатой
юзай c#, он у всех есть Smile
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
VM
ghost


Пол: Пол:Муж.
Зарегистрирован: 13.10.2006
Сообщения: 1368
Откуда: а вот

Статус: Offline
СообщениеДобавлено: 2007.12.05 12:54.59
Ответить с цитатой
и вообше... пора basic учить

Добавлено спустя 1 минуту 4 секунды:

"с" че? еще раз для особо одаренных пожалста
_________________
Не бывает безвыходных ситуаций. Есть только ситуации, выход из которых тебя не устраивает...
Я вернулся =)
Посмотреть профиль Отправить личное сообщение ICQ Number
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2007.12.05 13:43.32
Ответить с цитатой
"Си шарп" читается.

твоим способом программа выглядит примерно так:

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            for(decimal i = 0; true; i++)
            {
                decimal n1 = i * 10 + 2;
                decimal n2 = Decimal.Parse("2" + i.ToString());
                if (n1 == 2 * n2)
                {
                    Console.WriteLine("Number: {0}2", i);
                    break;
                }
                if(i.ToString().EndsWith("000000")) Console.WriteLine("Current: {0}", i);
            }

        }
    }
}

_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2007.12.07 00:37.35
Ответить с цитатой
сцуко, я забыл оптимизировать a*2+b = a+a+b
Посмотреть профиль Отправить личное сообщение
andy ice
Militärmagazinkatze


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 23385


Статус: Offline
СообщениеДобавлено: 2007.12.07 09:56.30
Ответить с цитатой
короче я устал ждать, когда программка выдаст правильный ответ, за полтора суток дошел до числа 26815000000
или комп тормозной или чо. хотя, конечно, сильно тормозит конструкция
if(i.ToString().EndsWith("000000")) Console.WriteLine("Current: {0}", i);
_________________
Ин дер гросен фамилие нихт клювен клац-клац Neutral
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
moishe
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1668


Статус: Offline
СообщениеДобавлено: 2007.12.10 22:55.59
Ответить с цитатой
char писал(а):
я забыл оптимизировать a*2+b = a+a+b

(a<<1)+b;
- так еще оптимальнее. На Паскале можно так?
Посмотреть профиль Отправить личное сообщение Отправить e-mail ICQ Number
char
Заслуженный писатель


Пол: Пол:Муж.
Зарегистрирован: 25.11.2004
Сообщения: 1304


Статус: Offline
СообщениеДобавлено: 2007.12.10 23:07.49
Ответить с цитатой
гы, moishe, это был процентов на 60% - стёб, ибо компилер сам соптимизит... но, для подрастающего поколения полезно все-ж иногда напоминать, что - умножение заменять сложением - так-то неплохо, как бы вот, короче, ога-ога
Посмотреть профиль Отправить личное сообщение
VM
ghost


Пол: Пол:Муж.
Зарегистрирован: 13.10.2006
Сообщения: 1368
Откуда: а вот

Статус: Offline
СообщениеДобавлено: 2007.12.11 00:41.12
Ответить с цитатой
char писал(а):
для подрастающего поколения полезно все-ж иногда напоминать

ок)) мотаем на ус, пока рассказывают))))))
_________________
Не бывает безвыходных ситуаций. Есть только ситуации, выход из которых тебя не устраивает...
Я вернулся =)
Посмотреть профиль Отправить личное сообщение ICQ Number
Страница 2 из 2
Начать новую тему   Ответить на тему   вывод темы на печать
На страницу Пред.  1, 2
Показать сообщения:   
Список форумов Шадринский форум ->  Место встречи -> Про космический туризм -> Задачка с баша

 
Перейти: 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы