Составте алгоритм для определения количества цифр в записи числа произвольного...

0 голосов
329 просмотров

Составте алгоритм для определения количества цифр в записи числа произвольного натурального числа.

составить блок схему


Информатика (14 баллов) | 329 просмотров
Дано ответов: 2
0 голосов

Рекурсивное решение:

function GrowTo(number,n:integer):Integer;
begin
Result:=Round(exp(n*ln(number)));
end;

function CountOfNumber(numb,exp:integer):integer;
begin
if (((numb div GrowTo(10,exp)) mod 10)=0) and   (((numb div GrowTo(10,exp+1)) mod 10)=0) thenbegin Result:=0;
end
else Result:=1+CountOfNumber(numb,exp+1);
end;

Вызывать функцию вот так: 
CountOfNumber(Chislo,0);

(518 баллов)
0 голосов

Короткое решение:) Можно было бы, конечно, и без числа, но лучше будет, если интерпретатор сам распорядится ошибочным вводом =)

var a: integer;
    b: string;
begin
     readln(a);
     b := inttostr(a);
     writeln(length(b));
end.


image
(16.9k баллов)
0

Это если строкой разрешено пользоваться.

0

А где запрет?:)

0

Хитрости спасают, особенно в программировании =)

0

Можно было бы целочисленным делением обойтись, но так короче)