A+B

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 24 februari 2021; kontroller kräver 3 redigeringar .

A+B är ett klassiskt testproblem  inom sportprogrammering , som används för att bekanta deltagarna med ett testsystem . [ett]

Vid programmeringstävlingar tittar arrangörerna som regel inte alls på programmets källkod - ett speciellt testsystem kompilerar lösningen och kör den på en förberedd uppsättning tester . Om lösningen ger framgångsrika resultat på indata från alla tester, anses problemet löst av deltagaren. Samtidigt måste deltagaren strikt följa reglerna för olympiaden - ange och mata ut information i det format som krävs och inte ansluta förbjudna moduler till programmet (till exempel conio.h).

Varaktigheten av olympiaden är som regel mycket begränsad, och omedelbart efter att den börjar har deltagarna inte längre tid att testa testsystemets kapacitet. I början av tävlingen måste deltagarna redan enkelt kunna hantera testsystemet och dess gränssnitt . För att bekanta sig med systemet, inför huvudomgången av Olympiaden, brukar det hållas en provomgång, där deltagarna erbjuds en lätt uppgift, algoritmen för att lösa som är trivial. Provomgångens uppgift är oftast uppgiften "A+B".

Naturligtvis kan vilken annan enkel uppgift som helst vara på provomgången. Ibland görs flera uppgifter så att deltagarna kan prova olika typer av input . Till exempel, i en uppgift, som i "A + B", måste du ange siffror och i de andra - strängar . Svårighetsgraden för provomgångsproblemen kan också variera från så enkla som "A + B" till svårare, även om det inte är brukligt att ge för svåra uppgifter på provomgången av förklarliga skäl.

"A + B" är ett av få programtävlingsproblem som traditionellt inte har en handling.

Tillstånd för problemet

Givet 2 heltal : A och B. Det krävs att man beräknar deras summa .

Indata

Ingångsströmmen innehåller två mellanrumsseparerade heltal på en enda rad: A och B.

Imprint

Skriv ett enda heltal till utgångsströmmen - summan av talen A och B.

Exempel

Inledande data Resultat
2 2 fyra
3 2 5

Lösning på problemet

Lösningsalgoritm

Algoritmen för att lösa "A + B"-problemet är en enkel sekvens av åtgärder som implementeras direkt på grund av ingångs-utgångskapaciteten hos ett visst programmeringsspråk . Du kan ordna algoritmen enligt följande:

  1. Greve A
  2. Greve B
  3. Lägg till A och B
  4. Ta ut erhållet belopp

Det är lätt att se att komplexiteten hos algoritmen är T(A, B) ~ O(1). På alla data exekveras programmets arbetslogik i ett litet ändligt antal processorcykler .

Lösningar på olika programmeringsspråk

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 ; börja Läs ( a , b ) ; WriteLn ( a + b ) ; slut .

I Java

importera java.util.Scanner ; public class AplusB { public static void main ( String [] args ) { Scanner scanner = new Scanner ( System . in ); int a = skanner . nextInt (); int b = skanner . nextInt (); System . ut . println ( a + b ); } }

I C++

#include <iostream> använder namnutrymme std ; int main () { int a , b ; cin >> a >> b ; cout << a + b ; returnera 0 ; }

I C#

använder System ; klass Program { static void Main () { sträng [] input = Console . läsrad (). 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 ) = dela /\s/ , <> ; skriv ut $a + $b . "\n" ;

In Common Lisp

( låt (( a ( läs )) ( b ( läs )) ( format t "~a~%" ( + a b )))

Ruby

sätter får . dela . karta ( & :to_i ) . injicera ( :+ )

I Haskell

main = print . summa . karta läsa . ord =<< getLine

AWK

{ skriv ut $ 1 + $ 2 }

On Go

huvudpaket _ importera "fmt" func main () { var a , b int fmt . Skanna ( &a , & b ) fmt . print ( a + b ) }

Kotlin

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

A+B-uppgifter på olika platser

Anteckningar

  1. Introduktion till Olympiad-programmering Arkiverad 8 december 2008 på Wayback Machine på Programmer's School