Дана последовательность целых чисел, оканчивающаяся нулём. Необходимо найти сумму всех нечетных чисел этой последовательности. Ноль числом последовательности не считается.
Формат входных данных
Вводится не более, чем 215 целых чисел, каждое из которых не превосходит по модулю (215−1). После последнего числа вводится 0.
Формат выходных данных
Требуется вывести одно число — искомую сумму.
входные данные выходные данные
1
2
3
4
5
0
9
6
13
42
0
13
ПИТОН!
Внимание! Если программа не работает, обновите версию!
function SubArray(subarr,arr:array of integer):integer;
begin
var ns:=subarr.Length;
var p1:=arr.Length-ns; // поиск на [0..p1]
var ii:=arr[:p1+1].IndexesOf(t->t=subarr[0]);
Result:=-1;
foreach var i in ii do
if arr[i:i+ns].Zip(subarr,(a,b)->a=b).All(t->t) then begin
Result:=i;
exit
end
end;
begin
var a:=ReadArrInteger('Введите элементы:',ReadInteger('n='));
var b:=ReadArrInteger('Введите элементы:',ReadInteger('n='));
var p:integer;
if a.Length<b.Length then begin
p:=SubArray(a,b);
if p>-1 then Writeln('Первый массив является подмассивом с позиции ',p+1)
else Writeln('Подмассив не обнаружен')
end
else begin
p:=SubArray(b,a);
if p>-1 then Writeln('Второй массив является подмассивом с позиции ',p+1)
else Writeln('Подмассив не обнаружен')
end
end.
Примеры
n= 4
Введите элементы: 1 2 3 4
n= 11
Введите элементы: 0 1 2 3 1 4 1 2 3 4 5
Первый массив является подмассивом с позиции 7
n= 4
Введите элементы: 1 2 3 5
n= 11
Введите элементы: 0 1 2 3 1 4 1 2 3 4 5
Подмассив не обнаружен
using namespace std;
struct P
{
P() = default;
P(int x, int y)
{
this->x = x;
this->y = y;
};
int x;
int y;
};
int main()
{
int size;
cin >> size;
P *arr = new P[size];
for (int i = 0; i < size; i++) {
cin >> arr[i].x;
cin >> arr[i].y;
};
P temp; // временная переменная для обмена элементов местами
// Сортировка массива пузырьком
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i - 1; j++) {
if (arr[j].x > arr[j + 1].x) {
// меняем элементы местами
temp.x = arr[j].x;
arr[j].x = arr[j + 1].x;
arr[j + 1].x = temp.x;
}
}
}
// Вывод отсортированного массива на экран
for (int i = 0; i < size; i++) {
cout << arr[i].x << " ";
}
delete[] arr;
}