помогите лузеру)
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
-
- Сообщения: 6
- Зарегистрирован: 18 апр 2007, 22:50
1.Подсчитать количество натуральных чисел, которые принадлежат интервалу [а,b), в которых младшая и старшая цифры - парные. (цикл)
2.Дана строка-предложение. Зашифровать его, поместив сначала все символы, размещенные на парных позициях, а затем в обратном порядке все символы, размещенные на непарных позициях (например, строка ‘Программа’ превратится в ‘ргамамроп’).
3.Дан вектор. Проверить, упорядочен ли он (массивы)
2.Дана строка-предложение. Зашифровать его, поместив сначала все символы, размещенные на парных позициях, а затем в обратном порядке все символы, размещенные на непарных позициях (например, строка ‘Программа’ превратится в ‘ргамамроп’).
3.Дан вектор. Проверить, упорядочен ли он (массивы)
- Колядин Максим
- Сообщения: 297
- Зарегистрирован: 16 ноя 2006, 19:09
- Откуда: Seattle, WA
- Контактная информация:
1) Не пойму при чём тут парные цифры. Приводи примеры как во 2-й задаче - легче вопрос восприниматься будет. А так суть здесь проста: ответом будут являтся все натуральные числа от а до (b-1).
2) Предлагаю следующий способ решения этой задачи:
(Пусть s - строка с текстом, s2 - кодированная строка)
1. Создать цикл от 1 до length(s), и если позиция (i) четна, то строке-ответу присвоить s2+s.
2. Создать цикл от length(s) вниз до 1, и если позиция (I) нечетна, тогда строке-ответу присвоить s2+s.
Код:
3) По-моему здесь всё слаживается на основе обычной сортировки одномерного массива, поэтому код писать не буду. Но смотря в каком направлении направлен вектор. Если он направлен слева на право, тогда нужно проверить, отсортирован ли массив по возрастанию (if m<m[i+1] then sort:=false) - справа на лево - по убыванию (if m>m[i+1] then sort:=false).
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.
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
-
- Сообщения: 6
- Зарегистрирован: 18 апр 2007, 22:50
спасибо за ответ.
а на счет первой задачи, например число 23456.
2 и 6 парные числа.
парность последней цифры я знаю как проверить, а последней - нет.
вот, что я написала
правда, правильно или нет - хз
а на счет первой задачи, например число 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.
- Колядин Максим
- Сообщения: 297
- Зарегистрирован: 16 ноя 2006, 19:09
- Откуда: Seattle, WA
- Контактная информация:
[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;
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
-
- Сообщения: 6
- Зарегистрирован: 18 апр 2007, 22:50
но нужно учитывать еще парность первой цифры числа. а как это проверить, я не знаю.
- Колядин Максим
- Сообщения: 297
- Зарегистрирован: 16 ноя 2006, 19:09
- Откуда: Seattle, WA
- Контактная информация:
Во-первых, 2 и 6 - непарные.
Определение. Два простых числа N1 и N2, где N2> N1 называются парными, если N2 - N1 = 2.
Определение. Два простых числа N1 и N2, где N2> N1 называются парными, если N2 - N1 = 2.
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
- Колядин Максим
- Сообщения: 297
- Зарегистрирован: 16 ноя 2006, 19:09
- Откуда: Seattle, WA
- Контактная информация:
Из указанного мною определения можно извлечь то, что если 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.
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Первая и последняя цифра парные могут быть в двух случаях:
Первая 3, последняя 5
или первая 5, последняя 7
поэтому простейший вариант:
Первая 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);
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
- Колядин Максим
- Сообщения: 297
- Зарегистрирован: 16 ноя 2006, 19:09
- Откуда: Seattle, WA
- Контактная информация:
Может быть я тебя недопонял, но первая и последняя цифры, по идее, могут быть парными во многих случаях.Хыиуду писал(а):Первая и последняя цифра парные могут быть в двух случаях
Примеры: a=1, b=3]a=17, b=19[/B].
Почему обязательно 3 и 5?
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
1 - не является простым числом по определению.
17 и 19 не являются цифрами.
17 и 19 не являются цифрами.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.