LoginSignup
0
0

More than 3 years have passed since last update.

AtCoder Beginner Contest 176 A問題「Takoyaki」解説(Python3,C++,Java)

Last updated at Posted at 2020-08-22

Ruteです!皆さんAtCoder Beginner Contest 176 お疲れ様でしたー!!
今回は、A問題・B問題・C問題早解きという、ABC164以来のABC早解きコンテストとなりました。
おそらく、「ABCを3完して撤退」という方も多かったと思います。

今回は、A問題・B問題・C問題の解説を3言語で解説していきたいと思います!!

各問題・解説へのリンク

A B C
この記事です!! ABC 176 B ABC 176 C

それでは、A問題の解説から始めます!!

問題概要

たこ焼き機は、一度に最大で$X$個のたこ焼きを作ることができる。作るのにかかる時間は個数によらず$T$分である。

$N$個のたこ焼きを作るためには何分必要かを出力せよ。

制約

・$1 \leq N,X,T \leq 1000$
・入力は全て整数

解説

解法1(天井関数の利用)

$N$個のたこ焼きを作るために必要なたこ焼き機の使用回数は$\lceil{\frac{N}{X}}\rceil$です。

(ここで、$\lceil{A}\rceil$は、Aの天井関数といい、具体的には$A$以上の最小の整数という意味を持ちます。)
よってそれに$T$を掛けたものが$N$個のたこ焼きを作るために必要な時間なので、これを出力すればよいです!!

解法2 (条件分岐の利用)

または、以下の様な条件分岐を考えても良さそうです。
・もし $N$を$X$で割った余りが0なら N/X*Tを出力し、そうでなければ(N/X+1)*Tを出力する。
以下、Python3,C++,Javaでの解答例を示します。
(Python3は解法1で、C++は解法2で解いたコードを解答例としています。)

各言語解答例

Python3での解答例
ABC176A.py
import math
n,x,t = map(int,input().split())
A = math.ceil(n/x)
print(A*t)

mathというライブラリにあるceilという関数を用いて天井関数を求めています。

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での解答例
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);
    }
  }
}

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0