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

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

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

> Задача про сложение., Найти A и B
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

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

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


Извинете что не принял участия в своей же теме, просто были проблемы с инетом. А до решения я уже допер. Надо представить Искомое число А, как Б1Б2Б3. Здесь Б2 цифра которую я вычеркиваю, Б1 то что до этой цифры, а Б3 то что после. (Пример, 4125326, вычеркиваю 5. Б1=412, Б2=5, Б3=326)
Тогда чтобы решить задачу нужно поочереди вычекивать цифры и решать
уравнение в целых числах:100Б1+10Б2+Б3+10Б1+Б3=А. Вот и все. Кстати для 1000000000 прога работает менее 1 сек на cel 466.

Сообщение отредактировано: LammerzAttack -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


Может покажешь, что у тебя получилось?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

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

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


Цитата(Nemo @ 5.02.05 18:59)
Может покажешь, что у тебя получилось?


Ну вот и код, заранее прошу прошение за его кривость smile.gif

Код
var
k,i,b3,b2,c,n,b1,i1,l:integer;
x:array[0..10] of integer;
y:array[0..10] of integer;
a,bbb:string;
begin
 readln(a);
 n:=0;
 val(a,k,c);
 repeat
   k:=k div 10;
   n:=n+1;
 until k<1;
 for i:=1 to n do
 begin
   val(a[i],x[i],c);
 end;
 val(a,k,c);
 b3:=k div 11;
 b2:=k-b3*11;
 if b2<>10 then writeln(b3*10+b2,' ','+',' ',b3,' = ',k);
 if x[n] mod 2=0 then
 begin
   y[0]:=0;
   l:=1;
   for i1:=1 to 10 do
   begin
   y[i1]:=y[i1-1]+x[n-i1+1]*l;
   l:=l*10;
   end;
   for i:=2 to n do
   begin
     b1:=y[i-1] div 2;
     l:=1;
     for i1:=1 to (i-1) do l:=l*10;
       b3:=(k div l) div 11;
       b2:=k div l-b3*11;
       if (b3+b2<>0) and (b2>=0) and (b2<=9) then
       writeln(b3*l*10+b2*l+b1,' ','+',' ',k-(b3*l*10+b2*l+b1),' = ',k);
       b1:=(y[i-1]+l) div 2;
       b2:=k div l-b3*11-1;
       if (b3+b2<>0) and (b2>=0) and (b2<=9) then
       writeln(b3*l*10+b2*l+b1,' ','+',' ',k-(b3*l*10+b2*l+b1),' = ',k);
     end;
   end;
 readln
end.

Писал под делфи.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





- Текстовая версия 7.09.2025 13:47
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name