はるのぶろぐ。

情報系大学生ハルが、ゆるゆるとIT関係についてや日々の雑記を綴ります。ちょっとだけ、あなたの役に立てる、そんなブログを目指しています。

【AtCoder】超初心者のためのデンソークリエイトプログラミングコンテスト2022A問題の解説【C言語】【ABC239】

参加してます!ポチッとお願いします

記事名と
URLをコピー

こんにちは、情報系大学生のハル(Blog_IT_haru)です。

今回は、C言語でのデンソークリエイトプログラミングコンテスト2022(AtCoder Beginner Contest 239,ABC239)に参加したので、自分の復習を兼ねてまとめていきたいと思います。

なお、私は灰色coderで、まださほど参加したことがありません。

超初心者ですので、備忘録的にまとめていきます。

f:id:Blog_IT:20220219230606p:plain

問題

A問題 Horizon

入力がhとして与えられるので、√h(12800000+h)を出力する。

制約:1≤H≤105であり、hは整数である。

以下よりご確認ください。

A - Horizon

私の考え方

  1. hを受け取る。
  2. sqrtを用いて、計算し、出力する。

私のソースコード

以下のようなソースコードになりました。

#include <stdio.h>
#include <math.h>
int main(void){
    double h;
    scanf("%lf",&h);
    double answer=sqrt(h*(12800000+h));
    printf("%lf",answer);
}

公式の解説・考え方

私の考え方と同様でしたが、少しコードはシンプルなものになっていました。

公式の考え方のコード

#include<stdio.h>
#include<math.h> int main(){
    double h;
    scanf("%lf",&h);
    printf("%.9f\n",sqrt(h*(12800000+h)));
}

引用:Editorial - Denso Create Programming Contest 2022(AtCoder Beginner Contest 239)

必要な知識

以下の知識が必要です。

※各項目をクリックすることで、該当の部分に飛べます。

scanfでの値の読み取る方法

printfの使い方

sqrtの使い方

scanfで値を読み取る方法

今回は、整数なので、以下の様に読み取ります。

    int a;
    scanf("%d",&a);

intは、型の種類の一つで、整数を取り扱います。

簡単に言うと、大きさが大きくない整数を取り扱える型です。

int型を、scanfで読み取るときの変換指定子は、dです。

変換指定子を簡単に言うと、整数を読み取るためのものです。

scanf自体は、scanf(”書式文字列”, &変数名1, &変数名2…)というふうに使用します。

書式文字列の中に、%dなどの変換指定子を書きます。

使い方は以下のような感じです。

※今回は、double型なので、lfを使用しました。

int a;
scanf("%d",&a);

printfの使い方

過去に、printfについて書いていた記事がありましたので、一部引用しました。

printfは、文字列を表示するための関数です。

普通は、以下のように、文字列を記述するのですが、今回は整数の計算結果を記述したいので、少し違う書き方になりましたね。

普通の文字列の場合

printf("tameshi");

整数の場合

printf("%d",sum);

このとき出てきた、%dのdが、変換指定子dです。

%d

printf内で使います。

整数を10進数で出力します。

int型に対応します。

今回は、double型に対応する、lfを使用しました。

公式の答えでは、%.9fとなっていますが、これは、小数点以下を9桁まで出力するという意味です。

使用例

printf("%d",10);

この場合、10と出力されます。

\n

printf内で使います。

改行を行います。

先程の変換指定子の前か後に記入します。

前に記入した場合は前が改行され、後ろに記入した場合は後ろが改行されます。

今回も、見やすく出力するために、使用しました。

printf("\n%d",sum);

こんな感じですね。

(引用元:C言語で合計値を求める - ハルの初心者プログラミング部

sqrtの使い方

sqrtは、√(ルート、平方根)を求めるための関数です。

#include <math.h>をすることによって、利用することができます。

double型が返ってくる関数です。

おすすめな記事

ABC238の、A,B,C問題の解説の記事もありますので、ぜひ読んでみてください。

blog-it.hatenablog.com

blog-it.hatenablog.com

blog-it.hatenablog.com

まとめ

いかがでしたか?

今回の、239のA問題は、とても簡単なものだったと思います。

ですが、sqrtを知らないと、難しく感じたかもしれませんね。

\ほんとの初心者の方は、本で学ぶのもおすすめ!/

以下の記事でおすすめ本紹介しています!

blog-it.hatenablog.com

この記事がいいな、と思ってくれたら、SNSなどで拡散したり、

ブックマークやコメントなどしてくれると励みになります!

下の方とサイドバーにある、サポートもお待ちしています!

更に、読者になってくれたら、お返しに私も読者になります!

また、この記事の内容についてなにかありましたら、

お問い合わせ、コメント、TwitterのDMなどによろしくお願いします。

それでは。