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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.10.2012, 20:24   #1
maksym08
Пользователь
 
Регистрация: 13.09.2012
Сообщений: 12
По умолчанию

У меня есть задача: дано уравнение x1+x2+...+xn=r. Известны n и r.
Посмотрите пожалуста мой код. Тут находит количество решений, а надо + все эти решения. Спасибо!
Код:
 #include <iostream>
 #include <iomanip>
 #include <sstream>
 #include <conio.h>
 #include <cmath>
 using namespace std;

 int main()
 {
 cout.width(62);
 cout<<"Znahodgennia rozvazkiv rivniannia X1+X2+...+Xn=r"<<endl<<endl;
 long int n,r,K;
 cout<<"Vvedit kilkist zminnyh n: ";
 cin>>n;
 if (n<1) {cout<<"Pomylka: n>=1 !";getche();return 0;}
 cout<<"Vvedit cilu constantu r: ";
 cin>>r;
 if (r<0) {cout<<"Pomylka: r>0 !";getche();return 0;}
 long int fv=1;
 for (int i=1;i<=(n+r-1);++i)
 fv*=i;
 long int f1=1;
 for (int i=1;i<=(n-1);++i)
 f1*=i;
 long int f2=1;
 for (int i=1;i<=r;++i)
 f2*=i;
 K=fv/(f2*f1);
 cout<<"Kilkist rozvazkiv = "<<K<<endl;

 getche();
 return 0;
 }


Вот правильное решение на паскале, но паскаль я не учил. Помогите пожалуста!
Код:
type list=^node;
node=record
  el:integer;
  next:list;
end;
procedure poisk(r,n:integer;l:list);
var  d:list;
     q:integer;
begin
  if r<n then exit;
  if (r=0)and(n=0) then begin
    d:=l;
    while d<>nil do begin
      write(d^.el,' ');
      d:=d^.next;
    end;
    writeln;
    exit
  end;
  q:=r-n+1;
  while q>=1 do begin
    new(d);
    d^.el:=q;
    d^.next:=l;
    poisk(r-q,n-1,d);
    dispose(d);
    d:=nil;
    if n=1 then exit; {последний Х может принять только одно значение}
    q:=q-1;
  end;
end;

Последний раз редактировалось Stilet; 29.10.2012 в 21:08.
maksym08 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на решение в Делфи АленаАлексеевна Свободное общение 0 13.04.2012 21:38
Задача в С++, есть решение на паскале . Anna Greyburg Помощь студентам 1 15.03.2012 14:21
задача-решение Ольга Федюкина Паскаль, Turbo Pascal, PascalABC.NET 8 27.02.2012 00:30
Задача - за решение заплачу Nellik Фриланс 6 31.05.2011 09:22
Задача, требуется решение Indy_J Microsoft Office Excel 2 22.04.2011 12:56