poniedziałek, 13 listopada 2017

00012 - 997 - Kalkulator - www.pl.spoj.com


Treść zadania:

Napisz program, który działa jak prosty kalkulator obsługujący pięć operacji: dodawanie, odejmowanie, mnożenie, dzielenie i obliczanie reszty z dzielenia liczb całkowitych.

Wejście
Na wejście programu podana zostanie pewna nieokreślona liczba zestawów danych. Zestawy składają się z jednoznakowego symbolu operacji do wykonania (+ dodawanie, - odejmowanie, * mnożenie, / dzielenie całkowitoliczbowe, % reszta z dzielenia) oraz następujących po nim dwóch liczb całkowitych. Poszczególne składowe zestawu zostaną rozdzielone spacjami, a same zestawy znakiem nowej linii. Liczba testów nie przekracza 100, wynik zawiera się w typie int32.

Wyjście
Na wyjściu programu ma się pojawić ciąg liczb będących rezultatem wykonania pojawiających się na wejściu poleceń. Poszczególne liczby należy rozdzielić znakami nowej linii. Uwaga! Można założyć, że dane wejściowe nie zawierają polecenia dzielenia przez 0.

Przykład

Wejście:
+ 7 9
- 0 4
* 5 6
/ 8 3
% 5 2

Wyjście:
16
-4
30
2
1

Kod źródłowy w C++:
#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
    char i;
    int x, y;
    while (!(cin >> i).eof())
    {
        cin>>x>>y;
        switch(i)
        {
            case '+':
                cout<<x+y<<endl;
                break;
            case '-':
                cout<<x-y<<endl;
                break;
            case '*':
                cout<<x*y<<endl;
                break;
            case '/':
                cout<<x/y<<endl;
                break;
            case '%':
                cout<<x%y<<endl;
                break;
        }
    }
    return 0;
}


Kod źródłowy w Python 2:
def multiplication(a,b):
    return a*b
def division(a, b):
    return a/b
def addition(a,b):
    return a+b
def subtraction(a,b):
    return a-b
def modulo(a,b):
    return a%b
output = 0
while True:
    try:
        scan = str(raw_input())
    except EOFError:
        exit(0)
    output = 0
    l = scan.split(' ')
    if l[0] == "+":
        output = addition(int(l[1]), int(l[2]))
    elif l[0] == "-":
        output = subtraction(int(l[1]), int(l[2]))
    elif l[0] == "*":
        output = multiplication(int(l[1]), int(l[2]))
    elif l[0] == "/":
        output = division(int(l[1]), int(l[2]))
    elif l[0] == "%":
        output = modulo(int(l[1]), int(l[2]))
    print output


Kod źródłowy w Python 3 V1:
def multiplication(a,b):
    return a*b
def division(a, b):
    return a/b
def addition(a,b):
    return a+b
def subtraction(a,b):
    return a-b
def modulo(a,b):
    return a%b
output = 0
while True:
    try:
        scan = str(input())
    except EOFError:
        exit(0)
    output = 0
    l = scan.split(' ')
    if l[0] == "+":
        output = addition(int(l[1]), int(l[2]))
    elif l[0] == "-":
        output = subtraction(int(l[1]), int(l[2]))
    elif l[0] == "*":
        output = multiplication(int(l[1]), int(l[2]))
    elif l[0] == "/":
        output = division(int(l[1]), int(l[2]))
    elif l[0] == "%":
        output = modulo(int(l[1]), int(l[2]))
    print (int(output))


Kod źródłowy w Python 3 V2:
def calculating(n):
  n = n.split(' ', 2)
  print(int(eval( n[1]+n[0]+n[2])))
while True:
  try:
    calculating(input())
  except EOFError:
    exit(0)


Źródło:
http://pl.spoj.com/problems/CALC/

Brak komentarzy:

Prześlij komentarz