Страница 1 из 2
помогите лузеру)
Добавлено: 18 апр 2007, 22:53
Switchback
1.Подсчитать количество натуральных чисел, которые принадлежат интервалу [а,b), в которых младшая и старшая цифры - парные. (цикл)
2.Дана строка-предложение. Зашифровать его, поместив сначала все символы, размещенные на парных позициях, а затем в обратном порядке все символы, размещенные на непарных позициях (например, строка ‘Программа’ превратится в ‘ргамамроп’).
3.Дан вектор. Проверить, упорядочен ли он (массивы)
Re: помогите лузеру)
Добавлено: 19 апр 2007, 01:09
Колядин Максим
1) Не пойму при чём тут парные цифры. Приводи примеры как во 2-й задаче - легче вопрос восприниматься будет. А так суть здесь проста: ответом будут являтся все натуральные числа от
а до
(b-1).
2) Предлагаю следующий способ решения этой задачи:
(Пусть s - строка с текстом, s2 - кодированная строка)
1. Создать цикл от 1 до length(s), и если позиция (i) четна, то строке-ответу присвоить s2+s
.
2. Создать цикл от length(s) вниз до 1, и если позиция (I) нечетна, тогда строке-ответу присвоить s2+s.
Код:
Код: Выделить всё
uses crt;
var s,s2: string;
i: integer;
begin
clrscr;
readln(s);
for i:= 1 to length(s) do if not odd(i) then s2:=s2+s[i];
for i:= length(s) downto 1 do if odd(i) then s2:=s2+s[i];
writeln(s2);
readkey;
end.
3) По-моему здесь всё слаживается на основе обычной сортировки одномерного массива, поэтому код писать не буду. Но смотря в каком направлении направлен вектор. Если он направлен слева на право, тогда нужно проверить, отсортирован ли массив по возрастанию (if m
<m[i+1] then sort:=false) - справа на лево - по убыванию (if m>m[i+1] then sort:=false).
Re: помогите лузеру)
Добавлено: 19 апр 2007, 01:22
Switchback
спасибо за ответ.
а на счет первой задачи, например число 23456.
2 и 6 парные числа.
парность последней цифры я знаю как проверить, а последней - нет.
вот, что я написала
Код: Выделить всё
Var a,b,kol,k,j : integer;
begin
writeln('a,b');
readln(a,b);
kol:=0;
for j:=a to b-1 do
begin
k:=j mod 10;
if odd (k) then kol:= kol+1;
end;
writeln('kol: ',kol);
end.
правда, правильно или нет - хз
Re: помогите лузеру)
Добавлено: 19 апр 2007, 13:23
Колядин Максим
[quote="Switchback"]
Код: Выделить всё
for j:=a to b-1 do
begin
k:=j mod 10][/quote]
Основываясь на том, что каждый 2-ой ход число [B]k[/B] будет нечётным, то всю цитату можно заменить кодом:
[code]
kol:=(b-a) div 2;
Re: помогите лузеру)
Добавлено: 19 апр 2007, 17:58
Switchback
но нужно учитывать еще парность первой цифры числа. а как это проверить, я не знаю.
Re: помогите лузеру)
Добавлено: 20 апр 2007, 00:32
Колядин Максим
Во-первых, 2 и 6 - непарные.
Определение. Два простых числа N1 и N2, где N2> N1 называются парными, если N2 - N1 = 2.
Re: помогите лузеру)
Добавлено: 20 апр 2007, 01:47
Колядин Максим
Из указанного мною определения можно извлечь то, что если a и b парные, тогда колличество натуральных чисел в этом интервале будет = 2.
Вот код:
Код: Выделить всё
uses crt;
var a,b,sum: integer;
function simplevar(x:longint):boolean; {функция определения простых чисел}
var c: integer;
begin
simplevar:=true;
for c:=2 to trunc(sqrt(x)) do
if x mod c=0 then
begin
simplevar:=false;
exit;
end;
end;
begin
clrscr;
readln(a,b);
if simplevar(a) and simplevar(b) and (b-a=2) then sum:=(((b-a) div 2)+1) else
write('Не парные! ');
writeln('Кол-во натуральных чисел в интервале - ',sum);
readkey;
end.
Re: помогите лузеру)
Добавлено: 20 апр 2007, 10:07
Хыиуду
Первая и последняя цифра парные могут быть в двух случаях:
Первая 3, последняя 5
или первая 5, последняя 7
поэтому простейший вариант:
Код: Выделить всё
count:=0;
for i:=a to b do
begin
s:=inttostr(i);
if (s[1]='3') and (s[length(s)]='5') or (s[1]='5') and (s[length(s)]='7')
then inc(count);
end;
writeln(count);
Re: помогите лузеру)
Добавлено: 20 апр 2007, 15:05
Колядин Максим
Хыиуду писал(а):Первая и последняя цифра парные могут быть в двух случаях
Может быть я тебя недопонял, но первая и последняя цифры, по идее, могут быть парными во многих случаях.
Примеры:
a=1, b=3]a=17, b=19[/B].
Почему обязательно 3 и 5?
Re: помогите лузеру)
Добавлено: 20 апр 2007, 15:17
Хыиуду
1 - не является простым числом по определению.
17 и 19 не являются цифрами.