AIZU ONLINE JUDGE(AOJ) ITP1_1_A~D

AOJ

AOJにはCourseという問題セットがあり、その中にジャンルごとの問題集があります。
競プロの地盤固めを目的に、この辺りの問題集を解いていきたいと思います。

ITP1に関して

ITP1はintroduction to programming1の略で、初心者向けのセットになっています。
私がやる意味はあんまりないですが、こういうのは頭から埋めたい性分なのでやっていきます><

ITP1_1_A: Hello World

judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ITP1_1_A (u-aizu.ac.jp)

プログラミングの慣習ということで、Hello Worldを出力する問題。
C++ならcoutで出力できます。

#include<bits/stdc++.h>
//#include<atcoder/all>

using namespace std;
//using namespace atcoder;

int main(){
    cout<<"Hello World"<<endl;
}

ITP1_1_B: X Cubic

judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ITP1_1_B (u-aizu.ac.jp)

x^3を出力する問題。
入力はc++ならcinで受け取れます。x^3の計算はpow関数を使ってもいいですが、x*x*xと手打ちで3回かけても問題ありません。

#include<bits/stdc++.h>
//#include<atcoder/all>

using namespace std;
//using namespace atcoder;

int main(){
    int x;
    cin>>x;
    cout<<x*x*x<<endl;
}

ITP1_1_C: Rectangle

judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ITP1_1_C&lang=ja (u-aizu.ac.jp)

少し数学っぽい問題です。
面積=たて*よこ
周の長さ=2*たて+2*よこ
です。これらを計算し出力するコードを書きましょう。

#include<bits/stdc++.h>
//#include<atcoder/all>

using namespace std;
//using namespace atcoder;

int main(){
    int a,b;
    cin>>a>>b;
    cout<<a*b<<" "<<2*a+2*b<<endl;
}

ITP1_1_D: Watch

judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ITP1_1_D&lang=ja (u-aizu.ac.jp)

秒数を、時分秒に変換する問題です。
60秒=1分
60分=3600秒=1時間
です。
なので、秒数を3600で割って小数点を切り捨てた値が時間になります。
時間にならなかった秒数(3600で割った余り)から、60で割って小数点を切り捨てると分になります。
分にならなかった秒数(60で割った余り)が秒になります。
上記をコードに落としていきます。

#include<bits/stdc++.h>
//#include<atcoder/all>

using namespace std;
//using namespace atcoder;

int main(){
    int S;
    cin>>S;
    int s=S%3600%60;
    int m=S%3600/60;
    int h=S/3600;
    cout<<h<<":"<<m<<":"<<s<<endl;
}

上記の式はmod計算の関係から式変換でき、以下のようなコードにできます。

#include<bits/stdc++.h>
//#include<atcoder/all>

using namespace std;
//using namespace atcoder;

int main(){
    int S;
    cin>>S;
    int s=S%60;
    int m=S/60%60;
    int h=S/60/60;
    cout<<h<<":"<<m<<":"<<s<<endl;
}

こっちの方が書き方としては素直ですね。

コメント

タイトルとURLをコピーしました