901. Количество операций

 

Определить общее количество операций сложения (+), вычитания (-) и умножения (*) в заданном арифметическом выражении.

 

Вход. В одной строке задано арифметическое выражение, не содержащее скобок и пробелов. Количество символов в выражении не превышает 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)