Проверьте правильность решения

  • Автор темы the Rock
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

the Rock

#1
Посмотрите решение задачи:
сколько цифр Х содержит число У (У>0, целое)
Хм... решил через строки сделать, только непонятно, какую длину строки выбрать?
и еще как задать в описании, что У>0, ну и в целом проверьте пожалуйста решение задачи

Заранее благодарен:)!

Program chislo;
var
const n=30
y:string[30]
i,x,s:integer
begin
write ('Введите число у=','цифру х=')
readln(у,х)
for i:=1 to n-1 do begin
c:=y;
if c=x
then s:=s+1;
end;
write(s);
end.
 

vital

Больной Компом Детектед
29.01.2006
2 432
33
#2
какую длину строки выбрать?
Да будет тебе изветсно что есть такая ф-ция Length() которая возвращает длину строки.

Решение ужасно. Это не решение.И это.. в паскале в конце выражения ставится ;

Program chislo;
uses strings; //вроде бы так
var
s,x:string;
y:integer;
begin
writeln('Введите число у=');
readln(s);
writeln('Введите число x=');
readln(x);
for i:=1 to length(s) do
begin
if s=x then
begin
y:=y+1;
end;
end;
writeln('Всего совпадений:',y);
readln;
end.

Должно работать. Правда не ручаюсь, писал прямо тут. Впринципе, все должно быть ясно.. s возвращает i-тый символ в строке. Остальное вроде затруднений не вызовет. Это решение с использованием строк. Это не лучшее решение.

Хороший вариант был бы введенное Y брать как число, делить на десять получать остаток, остаток сравнивать с введенным х. И соответсвенно увеличивать некую переменную. И так в цикле. Потом вывести значение инкременируемой переменной. Все..

2the Rock
Можно вопрос.. Где ты учишься?
 
Статус
Закрыто для дальнейших ответов.