Помощь - Поиск - Пользователи - Календарь
Полная версия: Сложнейшая задача!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Bac9
Помагите плиз надо завтро срочно отчё здать а я нечё несделал!!!!Дополнить число ***999 цифрами слева так,чтобы полученное число делилось на 13,17,19!!
volvo
Цитата
надо завтро срочно отчё здать а я нечё несделал
Это - твои проблемы... Вот тут я говорил, что надо делать для решения: Задача на числа!
(у тебя почти тот же случай)
Zzzz...
Может нам еще за тебя здать?
Bac9
Нет!!здавать ненадо не чесно пацаны выручайте!!!
Michael_Rybak
тебе же volvo уже дал ссылку на решение похожей задачи.
Bac9
Там нету решений и я ваше немогу врубиться в эту задачу
Michael_Rybak
Неправда. Решение там есть.

Цитирую:

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


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

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



Теперь попробуй что-нибудь написать сам.
Гость
кк СПС поробую!!!!
Гость
У меня неполучаеться помагите плз получше напишите плз текст проги !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
Артемий
Блин,а может код хоть даш..а то сложновато както наугад!
Michael_Rybak
Похоже проблема в том, что не получается начать smile.gif
Гость
нет вот я уже её сделал вот решение:
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...
вроде тебе нужно чтобы число делилось и на 13,и на 19, и на 17?
volvo
Цитата
вот решение:
Это не решение данной задачи... У тебя проверяются далеко не все числа из тех, которые должны проверяться, а ты не видишь этого, потому что программа не отформатирована как следует.

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


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...
да, только если ему нужно чтобы число делилось или на13, или на 17, или на 19.

и еще нафиг тут переменная a она же не используется?
volvo
Цитата
и еще нафиг тут переменная a она же не используется?
То, что здесь на фиг не нужны переменные i, j, и k тебя не смутило? Автор, как видно, руководствовался принципом, чем больше циклов - тем круче, поэтому вместо одного сделал 3...
Zzzz...
похоже на то)...
Странник
Цитата(Zzzz... @ 25.03.2008 4:10) *

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

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



Я просто переставил циклы...На большое количество переменных внимания обращать не стал...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.