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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2009, 21:47   #11
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию

Sazary, удаляю... выдаёт кучу ошибок Т_Т
Щас, поколдую, авось что-то выйдет
Но всё равно спасибо что помогли
На весы вроде нажимала
Sianessa вне форума Ответить с цитированием
Старый 31.03.2009, 21:50   #12
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Так.. То решение не выполняло условие:
Цитата:
содержащей минимальное число слагаемых.
Исправлено.
Заодно проверил в Делфи. Все работает.

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
N : integer;
mins : string;
min : integer;

procedure fun(N : integer; tekS : integer; tekSTR : string; k : integer);
var
S,i : integer;
bstr : string;
begin
 { если сумма больше числа, то слагаемые подобраны неверно }
if tekS>N then
 exit
 { если сумма равна числу, то выводим его }
else if tekS = N then
 begin
 {writeln(tekSTR);  }
 if (k<min) or (min=0) then
  begin
  min := k;
  mins := tekSTR;
  end;
 exit;
 end;
{---}

for i:= trunc(sqrt(N)) downto 1 do
 begin
 S :=tekS+sqr(i);
 if S<=N then  { если текущее значение счетчика в квадрате
  плюс текущая сумма не превышает число, то ... }
  begin
  if tekSTR='' then  { если строка пустая (еще нет первого слагаемого) }
    begin
    Str(i,bstr);
    bstr := bstr + '^2 ';  { кладем туда i^2 }
    end
  else             { иначе добавляем "+i^2 " }
   begin
   Str(i,bstr);
   bstr := tekSTR + '+ ' + bstr +'^2 ';
   end;

   fun(N,S,bstr,k+1);
  end; {for}

 end;


end;
{--------}

begin
readln(N);
min := 0;
mins := '';
fun(N,0,'',0);

writeln;
writeln(mins);

readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 31.03.2009, 22:08   #13
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию

Sazary, эмм у меня типа работает, только пустая консоль почему-о - ничего не пишет Т_Т даже после нажатия Enter-а мож что-то другое нажимать надо?
Sianessa вне форума Ответить с цитированием
Старый 31.03.2009, 22:11   #14
Sianessa
Форумчанин
 
Регистрация: 18.01.2009
Сообщений: 144
По умолчанию

охх, гомен - не сразу дошло, N То вводить надо О_о - тормоз я!
Всё, большое спасибо
Sianessa вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объясните delphi (inc) Neymexa Помощь студентам 5 27.01.2009 16:30
Бд в Delphi,объясните плиз RamireZ БД в Delphi 1 21.10.2008 23:58
Объясните, пожалуйста смысл строки - res=d.year > year ? -1: (d.year < year? 0:1) Fynj Помощь студентам 2 17.12.2007 17:50