Дано натуральное число:Найти две первые цифры числа. Верно ли, что первая цифра данного...

0 голосов

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


спросил от (28 баллов) в категории Информатика
2 Ответы
0 голосов
ответил от БОГ (194k баллов)
 
Лучший ответ

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-я цифра нечетная

оставил комментарий от БОГ (194k баллов)

Какой у Вас паскаль? Что не работает?

оставил комментарий от БОГ (194k баллов)

После n = надо вводить число и наживать Enter

оставил комментарий от (28 баллов)

Free pascal, когда я записываю ваше решение k1 и k2 просто по нулям

оставил комментарий от БОГ (194k баллов)

Попробуйте ввести число <= 32000

оставил комментарий от (28 баллов)

Это я не правильно вводил. Все так. Можете объяснить, почему while n>99

оставил комментарий от (28 баллов)

Можете помочь еще с одной задачей? (http://znanija.com/task/17789462)

оставил комментарий от БОГ (194k баллов)

С помощью операции div у числа отбрасывается последняя цифра. Так как нужны две первые цифры числа, то это отбрасывание нужно закончить, как только останется двухзначное число. Это число будет <=99.

оставил комментарий от (28 баллов)

Спасибо!

оставил комментарий от БОГ (194k баллов)

Пожалуйста.

оставил комментарий от (28 баллов)

Еще одну задачу можете помочь решить?

0 голосов
ответил от Бакалавр (13.9k баллов)

Так как мы не знаем длину числа и нам надо только первые две цифры, то можно поступить так:
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.


оставил комментарий от (28 баллов)

решение желательно через while, извиняюсь,что не предупредил

оставил комментарий от Бакалавр (13.9k баллов)

Да ничего ...

...