Помощь - Поиск - Пользователи - Календарь
Полная версия: Среди всех 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.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.