C言語による基本的な数値計算と特殊数の探索
1. BMI(体格指数)の計算
BMIは体重(kg)を身長(m)の2乗で割った値で、健康状態の指標として広く使われます。
入力: 体重(kg)と身長(cm)をスペース区切りで1行に入力
出力: BMI値を小数点以下2桁まで表示
#include <stdio.h>
int main() {
int weight, height_cm;
scanf("%d %d", &weight, &height_cm);
double height_m = height_cm / ...
6月28日 00:30 投稿
アルゴリズム実践トレーニングカリキュラム
配列操作編
二分探索と要素削除
二分探索:境界条件の2つの実装方法に注意。rightの定義、if条件と境界更新ロジックが重要。
左閉右閉左閉右開
rightの定義len(arr) - 1len(arr)
ループ条件while left <= right:while left < right:
境界更新right = mid - 1right = mid
class Solution:
def binary_search(self, arr: List[int], target: int) -> int:
...
6月26日 18:36 投稿
C言語プログラミング:反復構造と数学的アルゴリズムの実装例
指定された精度での交互級数の和
特定の精度(eps)に達するまで、数列 1 - 1/4 + 1/7 - 1/10 + ... の部分和を計算します。各項の絶対値が指定された精度以下になった時点で計算を終了します。
#include <stdio.h>
#include <math.h>
int main() {
double precision, term, total = 0.0;
int denominator = 1, sign = 1;
if (scanf("%lf", & ...
6月21日 01:19 投稿
Dijkstraアルゴリズムを用いた最短経路探索の実装
グラフ理論における最短経路問題は、ダイクストラ法(Dijkstra's Algorithm)を用いることで、負の重みを持たないグラフにおいて効率的に解くことができます。以下に、隣接リスト形式でグラフを表現し、指定された始点から終点までの最短経路を算出する実装例を示します。
実装例
#include <iostream>
#include <vector>
#include <algorithm>
#include ...
6月18日 22:26 投稿
平方探测法の実装と注意点:ハッシュテーブル衝突解決の深層
平方探测法の実装と注意点:ハッシュテーブル衝突解決の深層
ハッシュテーブルにおける衝突処理手法として、平方探査法はその特異な動作特性から多くの場面で採用されています。この手法は単なる線形探索とは異なり、特定の数列パターンを用いたジャンプ型検索を行うことで、データ構造の効率的な運用を実現します。しかし、実装時にはいくつかの落とし穴に注意が必要です ...
6月18日 19:35 投稿
第14回 藍橋杯 C/C++ Bグループ 省大会 競技課題の解説と実装
1. 日付統計 (Date Statistics)
8桁の数値が並んだ100個のデータから、2023年に存在する有効な日付(YYYYMMDD形式)がいくつ作れるかをカウントする問題です。部分列として抽出する必要があるため、全探索や動的計画法でアプローチします。このコードは計算済みの結果を出力する例です。
#include <iostream>
int main() {
// 探索アルゴリズムによって算出され ...
6月9日 22:20 投稿
二分木の深さ優先探索と幅優先探索、および関連アルゴリズムのSwift実装
// 二分木ノードの定義
public class BinaryNode {
public var value: Int
public var leftChild: BinaryNode?
public var rightChild: BinaryNode?
public init(value: Int) {
self.value = value
}
}
// 深さ優先探索(前順)
func preorder(node: BinaryNode?) -> [Int] {
guard let currentNode = node else { return [] }
...
6月8日 21:08 投稿