AtCoder Beginner Contest 176 Eine Erklärung des Problems "Takoyaki" (Python3, C ++, Java)

Das ist Rute! Jeder AtCoder Anfängerwettbewerb 176 Vielen Dank für Ihre harte Arbeit! !! Diesmal war es der ABC-Schnelllösungswettbewerb seit ABC164 </ font> </ b>, bei dem A-, B- und C-Fragen schnell gelöst werden. Wahrscheinlich gab es viele Leute, die sagten: "Schließe ABC 3 ab und ziehe dich zurück."

Dieses Mal möchte ich die Probleme A, B und C in drei Sprachen erklären! !!

Links zu jedem Problem / jeder Erklärung

A B C
Dieser Beitrag! !! ABC 176 B ABC 176 C

Beginnen wir mit einer Erklärung des A-Problems </ b>! !!

Problemzusammenfassung

Die Takoyaki-Maschine kann bis zu $ X $ Takoyaki gleichzeitig herstellen. Die dafür benötigte Zeit beträgt $ T $, unabhängig von der Anzahl.

Geben Sie aus, wie viele Minuten es dauert, um $ N $ takoyaki herzustellen.

Zwang

・ $ 1 \ leq N, X, T \ leq 1000 $ ・ Alle Eingänge sind ganze Zahlen

Kommentar

Lösung 1 (Verwendung der Deckenfunktion)

Die Häufigkeit, mit der die Takoyaki-Maschine verwendet wird, um $ N $ Takoyaki herzustellen, ist $ \ lceil {\ frac {N} {X}} \ rceil $.

(Hier wird $ \ lceil {A} \ rceil $ als Deckenfunktion </ b> von A bezeichnet und bedeutet insbesondere minimale Ganzzahl </ b> größer oder gleich $ A $. Hat.) Daher ist das Multiplizieren mit $ T $ die Zeit, die benötigt wird, um $ N $ takoyaki herzustellen, sodass Sie dies ausgeben können! !!

Lösung 2 (Verwendung der bedingten Verzweigung)

Oder es scheint gut, die folgende bedingte Verzweigung zu berücksichtigen. -Wenn $ N $ durch $ X $ geteilt wird und der Rest 0 ist, wird "N / X * T" ausgegeben, andernfalls wird "(N / X + 1) * T" ausgegeben. Nachfolgend finden Sie Beispiele für Antworten in Python3, C ++ und Java. (Python3 verwendet Lösung 1 </ b> und C ++ verwendet Lösung 2 </ b> als Beispiellösung.)

Beispiel für eine Antwort für jede Sprache

Beispiellösung in Python3

{ABC176A.py}


import math
n,x,t = map(int,input().split())
A = math.ceil(n/x)
print(A*t)
  • Die Deckenfunktion wird mit der Funktion "Decke" in der Bibliothek "Mathematik" berechnet.
Lösungsbeispiel in C ++

{ABC176A.cpp}


#include<bits/stdc++.h>
using namespace std;
int main(){
  int n,x,t;
  cin >> n >> x >> t;
  if (n%x == 0){
    cout << n/x * t << endl;
  }else{
    cout << (n/x + 1) * t << endl;
  }
}

Java-Antwortbeispiel

{ABC176A.java}


import java.util.Scanner;
public class Main{
  public static void main(String[] args){
    Scanner scan = new Scanner(System.in);
    int n = scan.nextInt();
    int x = scan.nextInt();
    int t = scan.nextInt();
    if (n%x == 0){
      System.out.println(n/x*t);
    }else{
      System.out.println((n/x+1)*t);
    }
  }
}

Recommended Posts