Помощь - Поиск - Пользователи - Календарь
Полная версия: Среди всех n-значных чисел...
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
kvadrat
Добродушные форумщики помогите пожалуйста решить задачу в паскале или посоветуйте способ решения и алгоритм:

Среди всех n-значных чисел указать те, сумма цифр потом равна данному числу k.
maksimla
ты хочешь найти все числа которые равны числу k?
kvadrat
Цитата(maksimla @ 20.04.2009 10:43) *

ты хочешь найти все числа которые равны числу k?

Именно

Забыл самое главное. Своё решение, помогите плиз исправить ошибки:
Код
program tz;
var
qwer,n,k,sum:real;
temp,pred,nach,delitel,i:integer;
begin
writeln('vvedite chislo k');
readln(k);
writeln('vvedite koli4estvo cifr v 4isle');
readln(n);
if n=1 then pred:=9;
if n=2 then pred:=99;
if n=3 then pred:=999;
if n=4 then pred:=9999;
if n=5 then pred:=32767;

if n=1 then nach:=1;
if n=2 then nach:=10;
if n=3 then nach:=100;
if n=4 then nach:=1000;
if n=5 then nach:=10000;

delitel:=10;

for i:=nach to pred do;
begin
while delitel>=10000 do;
    begin
    qwer:=pred/delitel;
    temp:=trunc(qwer);
    sum:=sum+temp;
    delitel:=delitel+10;
    end;
if sum=k then writeln('tststrewer',i)
end;
end.
Ozzя
program tz;
var
  n,k,sum:LongInt;
  temp,pred,nach,i:LongInt;
begin
  writeln('vvedite chislo k');
  readln(k);
  writeln('vvedite koli4estvo cifr v 4isle');
  readln(n);
  case n of
  1 :
    begin
      nach:=1;
      pred:=9;
    end;
  2 :
    begin
      nach:=10;
      pred:=999;
    end;
  3 :
    begin
      nach:=100;
      pred:=999;
    end;
  4 :
    begin
      nach:=1000;
      pred:=9999;
    end;
  5 :
    begin
      nach:=10000;
      pred:=99999;
    end;
  end;
for i:=nach to pred do
  begin
    sum:=0;
    temp:=i;
    while temp>0 do
      begin
        sum:=sum+temp mod 10;
        temp:=temp div 10;
      end;
    if sum=k then
      writeln('число равно ',i);
  end;
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.