A+B

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 24. februar 2021; checks kræver 3 redigeringer .

A+B er et klassisk prøveproblem  inden for sportsprogrammering , der bruges til at gøre deltagere fortrolige med et testsystem . [en]

Ved programmeringskonkurrencer ser arrangørerne som regel slet ikke på programmets kildekode - et særligt testsystem kompilerer løsningen og kører den på et forudforberedt sæt tests . Hvis løsningen giver succesfulde resultater på inputdata fra alle test, anses problemet for løst af deltageren. Samtidig skal deltageren nøje følge reglerne for olympiaden - indtaste og udlæse oplysninger i det krævede format og ikke forbinde forbudte moduler til programmet (for eksempel conio.h).

Varigheden af ​​olympiaden er som regel meget begrænset, og umiddelbart efter at den begynder, har deltagerne ikke længere tid til at teste testsystemets muligheder. Ved begyndelsen af ​​konkurrencen skal deltagerne allerede være i stand til nemt at administrere testsystemet og dets grænseflade . For at stifte bekendtskab med systemet, afholdes der normalt inden hovedrunden i Olympiaden en prøverunde, hvor deltagerne tilbydes en let opgave, algoritmen til at løse er triviel. Forsøgsrundens opgave er oftest opgaven "A+B".

Selvfølgelig kan enhver anden simpel opgave være på prøverunden. Nogle gange udføres flere opgaver, så deltagerne kan prøve forskellige typer input . For eksempel, i en opgave, som i "A + B", skal du indtaste tal , og i de andre - strenge . Sværhedsgraden af ​​prøverundens problemer kan også variere fra så simple som "A + B" til mere vanskelige, selvom det af indlysende årsager ikke er kutyme at give for svære opgaver på forsøgsrunden.

"A + B" er et af de få programmeringskonkurrenceproblemer , der traditionelt ikke har et plot.

Problemets tilstand

Givet 2 heltal : A og B. Det er nødvendigt at beregne deres sum .

Input data

Inputstrømmen indeholder to rum-separerede heltal på en enkelt linje: A og B.

Aftryk

Skriv et enkelt heltal til outputstrømmen - summen af ​​tallene A og B.

Eksempel

Indledende data Resultat
2 2 fire
3 2 5

Løsning af problemet

Løsningsalgoritme

Algoritmen til at løse "A + B"-problemet er en simpel sekvens af handlinger, der implementeres direkte på grund af input-output-kapaciteterne i et bestemt programmeringssprog . Du kan arrangere algoritmen som følger:

  1. Greve A
  2. Greve B
  3. Tilføj A og B
  4. Træk modtaget beløb

Det er let at se, at kompleksiteten af ​​algoritmen er T(A, B) ~ O(1). På alle data udføres programmets arbejdslogik i et lille begrænset antal processorcyklusser .

Løsninger på forskellige programmeringssprog

I C

#include <stdio.h> int main () { int a , b ; scanf ( "%d%d" , &a & b ) ; printf ( "%d \n " , a + b ); }

I Pascal

program aplusb ; var a , b : longint ; begynde Læs ( a , b ) ; WriteLn ( a + b ) ; ende .

I Java

importer java.util.Scanner ; offentlig klasse AplusB { public static void main ( String [] args ) { Scanner scanner = new Scanner ( System . in ); int a = scanner . næsteInt (); int b = scanner . næsteInt (); System . ud . println ( a + b ); } }

I C++

#include <iostream> bruger navneområde std ; int main () { int a , b ; cin >> a >> b ; cout << a + b ; returnere 0 ; }

I C#

bruger System ; klasse Program { static void Main () { string [] input = Konsol . læselinje (). Split ( ' ' ); Konsol . WriteLine ( int . Parse ( input [ 0 ]) + int . Parse ( input [ 1 ])); } }

Python 3

a , b = map ( int , input () . split ()) print ( a + b )

Perl _

( $a , $b ) = split /\s/ , <> ; udskriv $a + $b . "\n" ;

In Common Lisp

( lad (( a ( læs )) ( b ( læs )) ( format t "~a~%" ( + a b )))

Ruby

sætter får . split . kort ( & :to_i ) . injicere ( :+ )

I Haskell

hoved = print . sum . kort læst . ord =<< getLine

AWK

{ udskriv $ 1 + $ 2 }

On Go

hovedpakke _ importer "fmt" func main () { var a , b int fmt . Scan ( &a , & b ) fmt . print ( a + b ) }

Kotlin

fun main () { val ( a , b ) = readln (). opdele ( " " ). kort { det . toInt () } println ( a + b ) }

A+B-opgaver på forskellige steder

Noter

  1. Introduktion til Olympiade Programmering Arkiveret 8. december 2008 på Wayback Machine på Programmer's School