Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Сложнейшая задача!

Автор: Bac9 21.03.2008 4:59

Помагите плиз надо завтро срочно отчё здать а я нечё несделал!!!!Дополнить число ***999 цифрами слева так,чтобы полученное число делилось на 13,17,19!!

Автор: volvo 21.03.2008 5:01

Цитата
надо завтро срочно отчё здать а я нечё несделал
Это - твои проблемы... Вот тут я говорил, что надо делать для решения: http://forum.pascal.net.ru/index.php?s=&showtopic=21483&view=findpost&p=120559
(у тебя почти тот же случай)

Автор: Zzzz... 21.03.2008 6:18

Может нам еще за тебя здать?

Автор: Bac9 21.03.2008 14:53

Нет!!здавать ненадо не чесно пацаны выручайте!!!

Автор: Michael_Rybak 21.03.2008 16:22

тебе же volvo уже дал ссылку на решение похожей задачи.

Автор: Bac9 21.03.2008 16:37

Там нету решений и я ваше немогу врубиться в эту задачу

Автор: Michael_Rybak 21.03.2008 18:08

Неправда. Решение там есть.

Цитирую:

Цитата
Эта задача решается даже простым перебором элементарно, безо всяких оптимизаций: тебе надо получить пятизначное число, значит, вместо звездочки - 2 символа. Это значит, что перебирать надо комбинации 0 - 99. Для каждого из этих чисел формируешь пятизначное число 42xx4 (как - подумай сам), и проверяешь остаток от его деления на 72...


ОК, переформулирую для твоей задачи:

Цитата
Эта задача решается даже простым перебором элементарно, безо всяких оптимизаций: тебе надо получить шестизначное число, значит, вместо звездочек - 3 символа. Это значит, что перебирать надо комбинации 100 - 999 (перебор начинается с 100, а не с 000, потому что полученное в результате число не должно начинаться с нуля). Для каждого из этих чисел формируешь шестизначное число ххх999 (как - подумай сам), и проверяешь остаток от его деления на 13, 17 и 19...



Теперь попробуй что-нибудь написать сам.

Автор: Гость 21.03.2008 18:19

кк СПС поробую!!!!

Автор: Гость 24.03.2008 17:25

У меня неполучаеться помагите плз получше напишите плз текст проги !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1

Автор: Артемий 24.03.2008 17:45

Блин,а может код хоть даш..а то сложновато както наугад!

Автор: Michael_Rybak 24.03.2008 17:46

Похоже проблема в том, что не получается начать smile.gif

Автор: Гость 24.03.2008 18:02

нет вот я уже её сделал вот решение:
uses crt;
VAR
q,a,b,c,k,i,j:longint;
s:array[1..100] of longint;
BEGIN
clrscr;
a:=999;
for i:=1 to 9 do
begin
for j:=0 to 9 do
begin
for k:=0 to 9 do
begin
c:=i*100000+j*10000+k*1000+9*100+9*10+9;
end;
if (c mod 13)=0 then
writeln ('4ucLo geJluTc9 Ha 13 ',c);
if (c mod 17)=0 then
WRITELN('4ucLo geJluTc9 Ha 17 ',C);
if (c mod 19)=0 then
WRITELN('4ucLo geJluTc9 Ha 19 ',C);
end;
end;
END.

Автор: Zzzz... 24.03.2008 21:13

вроде тебе нужно чтобы число делилось и на 13,и на 19, и на 17?

Автор: volvo 24.03.2008 21:44

Цитата
вот решение:
Это не решение данной задачи... У тебя проверяются далеко не все числа из тех, которые должны проверяться, а ты не видишь этого, потому что программа не отформатирована как следует.

Hint: обрати внимание, что все без исключения числа, которые ты получаешь, имеют вид **9999... Что, например, число 881999 не делится на 19? Делится... Подумай, почему оно не печатается...

Автор: Zzzz... 24.03.2008 22:07

if-ы не там стоят

Автор: Странник 25.03.2008 5:07

Немного подредактировал...Правильно?


uses crt;
VAR
q,a,b,c,k,i,j:longint;

BEGIN
clrscr;
a:=999;
for i:=1 to 9 do
begin
for j:=0 to 9 do
begin
for k:=0 to 9 do
begin
c:=i*100000+j*10000+k*1000+9*100+9*10+9;
if (c mod 13)=0 then
writeln ('4ucLo geJluTc9 Ha 13 ',c);
if (c mod 17)=0 then
WRITELN('4ucLo geJluTc9 Ha 17 ',C);
if (c mod 19)=0 then
WRITELN('4ucLo geJluTc9 Ha 19 ',C);
end;

end;
end;
readln;
end.



Автор: Zzzz... 25.03.2008 5:40

да, только если ему нужно чтобы число делилось или на13, или на 17, или на 19.

и еще нафиг тут переменная a она же не используется?

Автор: volvo 25.03.2008 5:46

Цитата
и еще нафиг тут переменная a она же не используется?
То, что здесь на фиг не нужны переменные i, j, и k тебя не смутило? Автор, как видно, руководствовался принципом, чем больше циклов - тем круче, поэтому вместо одного сделал 3...

Автор: Zzzz... 25.03.2008 5:48

похоже на то)...

Автор: Странник 25.03.2008 16:00

Цитата(Zzzz... @ 25.03.2008 4:10) *

да, только если ему нужно чтобы число делилось или на13, или на 17, или на 19.

и еще нафиг тут переменная a она же не используется?



Я просто переставил циклы...На большое количество переменных внимания обращать не стал...