904. Увеличить на 2
Задана
последовательность целых чисел. Увеличьте на 2 каждый
ее неотрицательный элемент.
Вход. В первой строке задано количество элементов последовательности
n (n ≤ 100). Во второй строке заданы сами элементы, значение
каждого из которых по модулю не превышает 100.
Выход. Выведите в
одной строке n чисел: новые значения
элементов последовательности в том же порядке, в котором они были заданы.
Пример
входа |
Пример
выхода |
4 1 2 3 -4 |
3 4 5 -4 |
циклы
Задачу можно
решить как при помощи массива, так и без него. Последовательно читаем числа,
каждое неотрицательное увеличиваем на 2.
Реализация алгоритма
Читаем входное значение n.
scanf("%d",&n);
Последовательно
читаем n чисел.
for (i = 0; i < n; i++)
{
scanf("%d",&val);
Если число val
неотрицательно, то увеличиваем его на 2.
if (val >=
0) val +=2;
Выводим число val после изменения.
printf("%d
",val);
}
printf("\n");
Реализация алгоритма – массив
int m[101];
Читаем входные данные.
scanf("%d",&n);
for (i = 0; i
< n; i++)
scanf("%d",&m[i]);
Перебираем элементы массива. Увеличиваем на 2 каждый его неотрицательный элемент.
for (i = 0; i
< n; i++)
if (m[i] >= 0) m[i] = m[i] + 2;
Выводим ответ – результирующий массив.
for (i = 0; i
< n; i++)
printf("%d ",m[i]);
printf("\n");
Реализация
алгоритма – вектор, push_back
Читаем входные данные.
scanf("%d",&n);
for (i = 0; i
< n; i++)
{
scanf("%d",&val);
m.push_back(val);
}
Перебираем элементы массива. Увеличиваем на 2 каждый его неотрицательный элемент.
for (i = 0; i
< n; i++)
if (m[i] >= 0) m[i] = m[i] + 2;
Выводим ответ – результирующий массив.
for (i = 0; i
< n; i++)
printf("%d ",m[i]);
printf("\n");
Реализация алгоритма – вектор, resize
Читаем входные данные.
scanf("%d",&n);
m.resize(n);
for (i = 0; i
< n; i++)
scanf("%d",&m[i]);
Перебираем элементы массива. Увеличиваем на 2 каждый его неотрицательный элемент.
for (i = 0; i
< n; i++)
if (m[i] >= 0) m[i] = m[i] + 2;
Выводим ответ – результирующий массив.
for (i = 0; i
< n; i++)
printf("%d ",m[i]);
printf("\n");
Реализация алгоритма – указатели
#include <stdio.h>
int i, n;
int *m;
int main(void)
{
scanf("%d",&n);
// выделение памяти
m = new int[n];
// чтение массива
for (i = 0; i < n; i++)
scanf("%d",&m[i]);
// обработка массива
for (i = 0; i
< n; i++)
if (m[i]
>= 0) m[i] = m[i] + 2;
// вывод массива
for (i = 0; i
< n; i++)
printf("%d
",m[i]);
printf("\n");
// освобождение памяти
delete[] m;
return 0;
}
Java реализация
import java.util.*;
public class Main
{
public static void
main(String[] args)
{
Scanner con = new
Scanner(System.in);
int n = con.nextInt();
for (int i = 0;
i < n; i++)
{
int val = con.nextInt();
if (val
>= 0) val += 2;
System.out.print(val + "
");
}
System.out.println();
con.close();
}
}
Java реализация
– массив
import java.util.*;
public class Main
{
public static void
main(String[] args)
{
Scanner con = new
Scanner(System.in);
int n = con.nextInt();
int m[] = new int[n];
for (int i = 0;
i < n; i++)
m[i] = con.nextInt();
for (int i = 0;
i < n; i++)
if (m[i]
>= 0) m[i] += 2;
for (int i = 0;
i < n; i++)
System.out.print(m[i] + "
");
System.out.println();
con.close();
}
}
Java реализация
– ArrayList
import java.util.*;
public class Main
{
public static void
main(String[] args)
{
Scanner con = new
Scanner(System.in);
int n = con.nextInt();
ArrayList<Integer> m = new
ArrayList<Integer>();
for (int i = 0;
i < n; i++)
{
int val = con.nextInt();
m.add(val);
}
for (int i = 0;
i < n; i++)
if (m.get(i)
>= 0) m.set(i,m.get(i)+2);
for (int i = 0;
i < n; i++)
System.out.print(m.get(i) + "
");
System.out.println();
con.close();
}
}
Python реализация
n = int(input())
lst = list(map(int,input().split()))
Перебираем элементы списка lst. Увеличиваем на 2 каждый его неотрицательный элемент.
for
i in
range(n):
if lst[i] >= 0:
lst[i] = lst[i] + 2
Выводим ответ – список lst.
print(*lst)
Python реализация – построение
списка
n = int(input())
lst = list(map(int,input().split()))
Создадим реультирующий список p. Увеличиваем на 2 каждый неотрицательный элемент списка lst.
p = [x + 2
if x >= 0 else
x for
x in
lst]
Выводим ответ.
print(*p)
Python реализация – map
n = int(input())
lst = map(int,input().split())
Объявим функцию f, определенную следующим
образом:
f(n) =
def f(n):
if n >=
0:
return n + 2
return n
Применяем функцию f к каждому элементу списка lst.
res = list(map(f,lst))
Выводим список res.
for x in res:
print(x, end="
")