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

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

Образовательный студенческий форум _ Информатика / Программирование _ задачи по Pascalю , помогитее плизз(

Автор: ScRawL 9.11.2008, 16:03

цикл с условием:
дано натурально число N<=2000000000. Представить N в виде суммы факториалов натуральных чисел, содержащей наименьшее число слагаемых

цикл с заранее известным числом повторений:
дано целое n, 0<=n<=27. Найти количество натуральных чисел, меньших 1000, сумма цифр которых равна n.

линейный массив:
1.Дан линейный вещественный массив а. Найти (а1+а2)*(а3+а4)*...*(аn-1+an), n - четное
2.Дано целое число k (2<=k<=20). Найти коэффиценты k-го многочлена Чебышева. Последовательность Тi(x) многочленов Чебышева задается формулами Т0(x)=1, T1(x)=x, Ti(x)=2xTi-1(x)-Ti-2(x), i=2,3,4...


пожалуйста помогиттте мнее, хотя бы подскажите, или фрагмент программы напишите ..пожалуйста.. заранее благодарна! blush.gif

Автор: creer 9.11.2008, 19:38

Могу рассказать идеи решений, например у первых 2 заданий wink.gif

1. Любое натуральное число можно представить как сумму факториалов. Значит задача не так сложна. Для решения, я бы составил массив факториалов (благо всего 12 значений), либо просто написал функцию fac(n), которая возвращает факториал числа. Потом просто двойной цикл (примерно так)

Код
for i:=12 downto 1 do
  while (sum + fac(i))<=N do
  begin  
    sum:=sum + fac(i);
    writeln(i);
  end;


2. Еще проще.
Код
for i:=1 to 1000 do
  if summ(i) = N then
    count:=count + 1;

Где функция summ возвращает сумму цифр числа
Можно написать например так
Код
function summ(n:integer):integer;
var
  tn, t, sm:integer;  
begin
  tn := n;
  t := 0;
  while tn>0 do
  begin  
    t := t + tn mod 10;
    tn := tn div 10;
  end;
  summ:=t;  
end;

Автор: ScRawL 11.11.2008, 14:51

Спасибооо большоее:-*

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)