Дано натуральное число:Найти две первые цифры числа. Верно ли, что первая цифра данного числа-четная? Решение в паскале,помогите пжлст

Ответы

Ответ дал: petyaGavrikov
1
var n,k1,k2:integer;
begin
write('n = '); readln(n);
while n>99 do n:=n div 10;
k1:=n div 10;
k2:=n mod 10;
writeln('1 цифра = ',k1,'  2 цифра = ',k2);
if k1 mod 2 = 0
  then writeln('1-я цифра четная')
  else writeln('1-я цифра нечетная');end.

Пример:
n = 5632149
1 цифра = 5  2 цифра = 6
1-я цифра нечетная

petyaGavrikov: Какой у Вас паскаль? Что не работает?
petyaGavrikov: После n = надо вводить число и наживать Enter
tommylee1999: Free pascal, когда я записываю ваше решение k1 и k2 просто по нулям
petyaGavrikov: Попробуйте ввести число <= 32000
tommylee1999: Это я не правильно вводил. Все так. Можете объяснить, почему while n>99
tommylee1999: Можете помочь еще с одной задачей? (http://znanija.com/task/17789462)
petyaGavrikov: С помощью операции div у числа отбрасывается последняя цифра. Так как нужны две первые цифры числа, то это отбрасывание нужно закончить, как только останется двухзначное число. Это число будет <=99.
tommylee1999: Спасибо!
petyaGavrikov: Пожалуйста.
tommylee1999: Еще одну задачу можете помочь решить?
Ответ дал: vladmor
0
Так как мы не знаем длину числа и нам надо только первые две цифры, то можно поступить так:
1. Переводим число в строку и выделяем две подстроки символ длиной в 1 с начала строки, которые переводим обратно в целое.
2.  А дальше стандартно с помощью целочисленного деления выясняем четность первой цифры числа.
 
var a,a1,a2:integer;
s:string
  begin
  readln(a);
  //преобразуем число в строку и найдем первые 2 цифры
  str(a,s);
  a1:=strtoint(copy(s,1,1));
  a2:=strtoint(copy(s,2,1));
  writeln('Первая цифра числа: ',a1);
  writeln('Вторая цифра числа: ',a2);
  //Проверим первую цифру на четность
  if a1 mod 2 =0 then writeln(a1,' - четная')
    else writeln(a1,' - нечетная')
end.



tommylee1999: решение желательно через while, извиняюсь,что не предупредил
vladmor: Да ничего ...
Вас заинтересует