Помощь - Поиск - Пользователи - Календарь
Полная версия: Паскаль. Всё решено > Информатика / Программирование
Образовательный студенческий форум > Другие дисциплины > Информатика / Программирование
ivaaaan
Составьте программу нахождения наименьшего натурального N-значного числа X (X>=10), равного утроенному произведению своих цифр(используя процедуры или функции)

использую две функции: одна по нахождению минимального N-значного числа, вторая по вычислению утроенной суммы цифр. функции отлажены, ошибка в теле программы в том месте, где for i:=a to c do
i не меняется, оно всегда ноль, а нужно чтобы менялось от а до с. Как исправить?

program zadacha4;
var a,b,c,i,ch,N:integer;
function min_n_ch(M:integer):integer;
var
j,mnch:integer;
begin
mnch:=10;
for j:=2 to M-1 do
begin
mnch:=mnch*10;
end;
min_n_ch:=mnch;
end;
function computation(c:integer):integer;
var
p:string;
k,d,f,g:integer;
begin
str(f,p);
g:=1;
for i:=1 to length(p) do
begin
val(p,d,f);
g:=g*d;
end;
g:=g*3;
computation:=g;
end;
begin
writeln('enter N');
readln(N);
a:=min_n_ch(N);
writeln('min_n_ch ',a);
c:=a*10-1;
writeln('max_n_ch ',c);
begin
for i:=a to c do
begin
repeat;
b:=computation(i);
until i=b;
end; end;
writeln('b ',cool.gif;
writeln('program complete');
end.
Julia
1) Есть сомнения в правильности работы второй функции.
2) В большинстве случаев цикл бесконечный, т.к. i внутри него не меняется
repeat;
b:=computation(i);
until i=b;
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2025 Invision Power Services, Inc.