【C++】列車の速度と長さから橋の長さを求めるプログラムの作成方法
この問題では、列車の長さ(L)と速度(S)、さらに橋を通過するのにかかった時間(T)が与えられます。これらの情報をもとに、C++で橋の長さを求めるプログラムを作成するのが課題です。
問題の概要
列車の速度、橋を渡り切るまでにかかった時間、そして列車そのものの長さという3つの情報から、橋の長さを計算して求める必要があります。
具体例で問題を確認してみましょう。
入力: L = 310(列車の長さ)、S = 45 m/秒(速度)、T = 12秒(通過時間)
出力: 230 m
解き方のアプローチ
列車は速度Sで走行し、橋を完全に通過するまでにT秒かかります。ここでの「通過時間」とは、列車の先頭が橋に乗った瞬間から、列車の最後尾が橋を離れ切る瞬間までの時間を指します。したがって、この間に列車が進んだ総距離は「列車の長さ(L)+ 橋の長さ(B)」となります。
これを式で表すと、次のようになります。
S × T = L + B
この式を変形して、橋の長さ(B)を求めると:
B = S × T − L
プログラム例
#include <iostream>
using namespace std;
// 列車の長さL、速度S、通過時間Tから橋の長さを求める関数
int findBridgeLength(int L, int S, int T) {
int B = ((S * T) - L);
return B;
}
int main() {
int L = 150, S = 45, T = 25;
cout << "橋の長さは " << findBridgeLength(L, S, T);
return 0;
}実行結果
橋の長さは 975
コードの解説
findBridgeLength関数では、まず速度Sに時間Tを掛けて列車が進んだ総距離を計算し、そこから列車の長さLを引くことで橋の長さBを求めています。main関数では、L=150m、S=45m/秒、T=25秒という条件で関数を呼び出しており、計算すると 45 × 25 − 150 = 975 となるため、実行結果として「橋の長さは 975」が出力されます。
冒頭の具体例でも同様に、45 × 12 − 310 = 230 となり、橋の長さが230mであることが確認できます。このように、物理的な移動の関係を単純な一次式に落とし込むことで、簡単な算術演算だけで答えを導き出せるのがこの問題のポイントです。
-
C++でN番目の偶数長回文数を求める方法をわかりやすく解説
C++を使ったことがある人なら、「回文(パリンドローム)」という言葉を耳にしたことがあるでしょう。この記事では、「N番目の偶数長回文数」について、具体例を交えながらすべて解説します。 回文とは、逆から読んでも元と同じになる数字や単語のことです。数字だけでなく、文字を反転してもつづりが変わらない単語も回文と呼ばれます。例えば以下の通りです。 数字 = {1, 121, 131, 656, 1221, 1551} 単語 = {saas, malayalam, level, mom} 一見複雑に見えますが、実際にプログラムで実装すると非常にシンプルです。それでは、回文について詳しく見ていきましょう。
-
C++で楕円の面積を求めるプログラムの作成方法
この記事では、C++を使って楕円(だえん)の面積を求める方法を解説します。楕円にはいくつかの重要な構成要素があり、それぞれの意味を理解しておくと計算の仕組みがより明確になります。楕円の主な構成要素要素説明中心楕円の中心点。2つの焦点を結ぶ線分の中点でもあります。長軸楕円における最も長い直径です。短軸楕円における最も短い直径です。弦楕円上の2点を結ぶ線分のことです。焦点楕円を定義する2つの特別な点。図中に示された2点が該当します。通径焦点を通り、長軸に対して垂直な直線(線分)のことです。楕円の面積の公式楕円の面積は、長半径 a と短半径 b を使って次の式で表されます。面積 = π × a ×