Определить общее
количество операций сложения (+), вычитания (-) и умножения (*) в заданном
арифметическом выражении.
Вход. В одной строке задано арифметическое выражение, не
содержащее скобок и пробелов. Количество символов в выражении не превышает 250.
Выход. Вывести
количество указанных операций.
Пример
входа |
Пример
выхода |
-1+2*3+a |
3 |
РЕШЕНИЕ
строки
Читаем строку в
символьный массив. Начиная с первого (не нулевого!) символа подсчитываем
количество операций сложения, вычитания и умножения.
Реализация алгоритма
Объявим рабочий символьный массив.
char s[300];
Читаем входную строку – арифметическое выражение.
gets(s);
В переменной res
подсчитываем количество операций '+', '-' и '*'.
res = 0;
Перебираем
символы строки s, начиная с первой позиции. Если
символ s[i] является одной из указанных арифметических
операций, то увеличиваем cnt на 1.
for(i = 1; i < strlen(s); i++)
if ((s[i] == '+') || (s[i] == '-')
|| (s[i] == '*')) res++;
Выводим ответ.
printf("%d\n",res);
Реализация алгоритма – C++
Читаем входную строку – арифметическое выражение.
cin >> s;
В переменной res
подсчитываем количество операций '+', '-' и '*'.
res = 0;
Перебираем
символы строки s, начиная с первой позиции. Если
символ s[i] является одной из указанных арифметических
операций, то увеличиваем cnt на 1.
for (i = 1; i < s.size(); i++)
if ((s[i] == '+') || (s[i] == '-') || (s[i] == '*'))
res++;
Выводим ответ.
cout << res;
Реализация алгоритма – count
Читаем входную строку – арифметическое выражение.
cin >> s;
В переменной res
подсчитываем количество искомых операций начиная с первой позиции.
res = count(s.begin()
+ 1, s.end(), '+') +
count(s.begin() + 1, s.end(), '-') +
count(s.begin() + 1, s.end(), '*');
Выводим ответ.
cout << res;
Java реализация
import java.util.*;
public class Main
{
public static void
main(String[] args)
{
Scanner con = new
Scanner(System.in);
String s = con.nextLine();
int res = 0;
for (int i = 1;
i < s.length(); i++)
if ((s.charAt(i) == '+') ||
(s.charAt(i) == '-') ||
(s.charAt(i) == '*')) res++;
System.out.println(res);
con.close();
}
}
Java реализация
– символьный массив
import java.util.*;
public class Main
{
public static void
main(String[] args)
{
Scanner con = new
Scanner(System.in);
char s[] = con.nextLine().toCharArray();
int res = 0;
for (int i = 1;
i < s.length; i++)
if ((s[i] == '+') ||
(s[i] == '-') ||
(s[i] == '*')) res++;
System.out.println(res);
con.close();
}
}
Python реализация
Читаем входную строку – арифметическое выражение.
s = input()
В переменной cnt
подсчитываем количество операций '+', '-' и '*'.
cnt = 0
Перебираем
символы строки s, начиная с первой позиции. Если
символ s[i] является одной из указанных арифметических
операций, то увеличиваем cnt на 1.
for i in range(1,len(s)):
if s[i] in "*-+": cnt += 1
Выводим ответ.
print(cnt)