IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача про сложение., Найти A и B
LammerzAttack
сообщение 31.01.2005 13:35
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 18
Пол: Мужской

Репутация: -  0  +


Дано: Число n, такое что 10<=n<=1000000000;
Нужно написать прогу, которая бы за 1 секунду
выводила [/s]все пары чисел A и B, таких что 1)A+b=n;
2)число B получается из A путем удаления одной цифры.
Например
Дано:
n=302;
Получается:
251 + 51 = 302
275 + 27 = 302
276 + 26 = 302
281 + 21 = 302
301 + 01 = 302

Если есть идеи, помогите.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
trminator
сообщение 31.01.2005 21:25
Сообщение #2


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


я не могу въехать, откуда и докуда перебирать:

Код

var a, b, k, k1, n : longint; // чертов TurboPascal =)
begin
   readLn(n);
   k := 1; k1 := 0;
   while k1 < 10 do // Слишком много.... типа до кол-ва цифр в n, что ли, нужно...
   begin
       for a := 1 to n do // Тоже многовато...
               for b := 1 to k do // А тут вроде в самый раз
               if (a + trunc(a/10))*k + 2*b = n then
               begin
                   writeLn(a * k + b, '+', (a div 10)*k + b, ' = ', n)
               end;
       k := k * 10;
       inc(k1);
   end;
end.


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
LammerzAttack   Задача про сложение.   31.01.2005 13:35
APAL   Function IntToStr(k : LongInt) : S...   31.01.2005 14:16
LammerzAttack   В этом коде есть большая проблема: для чисел от 10...   31.01.2005 14:51
APAL   Да, действительно дольше... Делал так как было про...   31.01.2005 19:48
trminator   Пусть A = a*10^k + b Тогда B = (a div 10)*10^k + b...   31.01.2005 20:57
APAL   Написал второй вариант, но по времени тоже что-то ...   31.01.2005 21:06
trminator   со строками, по-моему, не должно проходить... по в...   31.01.2005 21:07
APAL   trminator, идея та что ты указал, хотя я сам додум...   31.01.2005 21:09
APAL   У меня есть еще одна идея: Ведь эту сумму можно по...   31.01.2005 21:13
trminator   я не могу въехать, откуда и докуда перебирать: v...   31.01.2005 21:25
Nemo   Цикл можно прогнать от N-10^(k-1)+1, где k - поряд...   2.02.2005 19:17
LammerzAttack   Извинете что не принял участия в своей же теме, пр...   5.02.2005 18:04
Nemo   Может покажешь, что у тебя получилось?   5.02.2005 18:59
LammerzAttack   Послезавтра возьму из школы исходник и пришлю   5.02.2005 19:14
LammerzAttack   Ну вот и код, заранее прошу прошение за его крив...   7.02.2005 13:21
volvo   LammerzAttack Только описания переменных надо бы и...   7.02.2005 13:42


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 16:39
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"