【C#】AtCoder Beginner Contest180 B - Various distances をC#で解いてみた【AtCoder】
※この解答は個人の見解の為、参考程度にご覧ください。
〇解答例
static void Main(string[] args){ var N = int.Parse(Console.ReadLine()); //LinQでLong型のIEnumarableクラスを作成する var X = Console.ReadLine().Split(' ').Select(e => long.Parse(e)); //マンハッタン距離、ユークリッド距離、チェビシェフ距離を格納する変数を作成 long mh = 0; long yu = 0; long ch = 0; foreach(var item in X) { //Xに格納した値の絶対値を順番に取り出す var i = Math.Abs(item); //マンハッタン距離:地点Aから地点Bまで、碁盤の目に沿ったかのような距離 //カクカクしている ※詳しくはググってね //計算方法:値を後ろへ順番に加算する mh += i; //ユークリッド距離:一番メジャーな距離。地点Aから地点Bまでの直線距離を平方根の原理を使って算出 //計算方法:値を累乗したものを後ろへ順番に加算し、合計を平方根で計算する yu += i * i; //チェビシェフ距離:地点Aから地点Bまで、チェスや将棋のようにマス目移動するかのような距離 //つまりファイアーエムブレム //計算方法:Math.Max()を使い、入力した引数の最大値をとる ch = Math.Max(ch, i); } Console.WriteLine(mh); //マンハッタン距離を出力 Console.WriteLine(Math.Sqrt(yu)); //Math.Sqrtを使って平方根を計算してユークリッド距離を出力 Console.WriteLine(ch); //チェビシェフ距離を出力 }