Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2011, 22:18   #1
DesignFootball.Ru
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 57
По умолчанию Задача на целое число

Два сомножителя составлены из цифр от 1 до 9 (причём каждая встречается ровно один раз) так, что их произведение - целое число.


Сам пока только вникнул в суть. Но может смогу помочь:
Двухзначное число обязательно будет равно 32, 64 и 96. ( потому что после запятой во втором множителе 5 знаков, значит домножать нужно на 5-ую степень двойки)
А второе число обязательно должно оканчиваться на 5 и более того, если второй множитель представить в виде правильной дроби, то в знаменателе этой дроби будет число 5^5

как перебрать все числа, подходящие под это условие? Благодарю заранее за помощь!
DesignFootball.Ru - Первый русскоязычный сайт о футбольной экипировке.
DesignFootball.Ru вне форума Ответить с цитированием
Старый 12.03.2011, 00:23   #2
firephenix
Пользователь
 
Регистрация: 14.02.2011
Сообщений: 89
По умолчанию

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  a : array[1..3] of longint;
  i,j,s1,s2,max : longint;

function proverka(j : longint) : boolean;
var
  s : string;
begin
  proverka:=true;
  if j mod 25 <>0 then proverka:=false;
  str(j,s);
  if pos('0',s)>0
    then proverka:=false;
end;

begin
  Assign(output,'output.txt'); ReWrite(output);
  a[1]:=32;
  a[2]:=64;
  a[3]:=96;
  for i:=1 to 3 do
    for j:=1000000 to 9999999 do
      if (proverka(j)) and (a[i]*j mod 1000000=0)
        then writeln(a[i],' ',j div 1000000,',',j mod 1000000);
  Close(output);
end.
firephenix вне форума Ответить с цитированием
Старый 12.03.2011, 00:35   #3
DesignFootball.Ru
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 57
По умолчанию

firephenix, большое спасибо! Даже не рассчитывал на готовый код. С меня + в репутацию!
DesignFootball.Ru - Первый русскоязычный сайт о футбольной экипировке.
DesignFootball.Ru вне форума Ответить с цитированием
Старый 12.03.2011, 01:27   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

только не проверяется условие:
Цитата:
из цифр от 1 до 9 (причём каждая встречается ровно один раз)
DesignFootball.Ru
кстати, ваше предположение о том, что первое число может быть одним из трёх - НЕВЕРНО.
первое двухзначеное число может быть ТОЛЬКО 64 и никак иначе!


Добавлено
а вот и мой вариант для решения этой "сверхсложной" задачи:
Код:
uses
  SysUtils;

var
  i,j : longint;

function Proverka(jj : longint) : boolean;
var s : string;
    i : integer;
begin
  Proverka := false;
  str(jj,s);
  if Pos('0',s)>0 then Exit;
  {цифры 6 и 4 мы уже использовали в первом множителе,
      поэтому отбрасываем числа, где есть эти цифры}
  if Pos('6',s)>0 then Exit;
  if Pos('4',s)>0 then Exit;
  for i:=1 to Length(s)-1 do
    if Pos(s[i], Copy(s,i+1, Length(s)-i))>0 then Exit;
  Proverka := true;
end;

begin
  Assign(output,'output.txt'); ReWrite(output);
  i:=64;
  for j:=1000000 to 9999999 do
      if (i*j mod 1000000=0) then
        if Proverka(j) then
            writeln(i,' ',j div 1000000,',',j mod 1000000);
  Close(output);
end.
p.s. кстати, ответ в задаче только один!

Последний раз редактировалось Serge_Bliznykov; 12.03.2011 в 01:43.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.03.2011, 01:32   #5
DesignFootball.Ru
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 57
По умолчанию

а как это исправить?
DesignFootball.Ru - Первый русскоязычный сайт о футбольной экипировке.
DesignFootball.Ru вне форума Ответить с цитированием
Старый 12.03.2011, 01:47   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

я опубликовал код..
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.03.2011, 01:50   #7
DesignFootball.Ru
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 57
По умолчанию

Спасибо!
__
поставил плюсик в репу


Но всё таки интересно: почему только 64?
DesignFootball.Ru - Первый русскоязычный сайт о футбольной экипировке.
DesignFootball.Ru вне форума Ответить с цитированием
Старый 12.03.2011, 22:27   #8
DesignFootball.Ru
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 57
По умолчанию

И в каком интерпретаторе писали? FPC ?
DesignFootball.Ru - Первый русскоязычный сайт о футбольной экипировке.
DesignFootball.Ru вне форума Ответить с цитированием
Старый 12.03.2011, 23:31   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
И в каком интерпретаторе писали? FPC ?
нет, консольное приложение Delphi

А какая, собственно, разница?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.03.2011, 01:09   #10
DesignFootball.Ru
Пользователь
 
Регистрация: 17.02.2011
Сообщений: 57
По умолчанию

разницы никакой. просто интересно. пожалуйста, ответьте на мой вопрос:
почему только 64?
DesignFootball.Ru - Первый русскоязычный сайт о футбольной экипировке.
DesignFootball.Ru вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дано вещественное число X и целое число N (> 0). Вывести X – X3/3! + X5/5! – ... + (–1)NX2N+1/(2N+1)!? Ахилес Помощь студентам 2 20.05.2010 20:34
Если x целое число то alco84 Microsoft Office Access 3 24.03.2010 11:24
данно целое число С++ Builder nariku Помощь студентам 0 21.02.2010 09:57
Дано целое число Vylkan Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 01.02.2010 07:36
Паскаль - выделить целое число Вера123 Помощь студентам 3 18.06.2009 10:29