丸投げ【C++,C言語, (2n!)/(n!*n!)の組み立て方】を解いてみた

宿題を解いてみる

【C++,C言語, (2n!)/(n!*n!)の組み立て方】n×n格子があり、左上の頂点をA,右... - Yahoo!知恵袋

C++,C言語, (2n!)/(n!*n!)の組み立て方】 n×n格子があり、左上の頂点をA,右下の頂点をBと固定した時にAからBまでの最短の道順の数を求めるプログラムについての質問です。

まず、初めに "nを入力してください。 n= " といった具合でnに値を入力し、実行すると道順の数が "道順の数= " といった具合でアウトプットされるプログラムが知りたいです。 道順の数の計算式は、(2n!)/(n!n!)でよろしいかと思います。 (すなわち、nに値を入力し、(2n!)/(n!n!)の計算結果をアウトプットするプログラムです) 例:"n=2"のとき、"道順の数=6"

お分かりになる方がいらっしゃいましたら助けていただくことは出来ますでしょうか。 よろしくお願い致します。

普通にどこかの学校の宿題で、回答をそのまんま提出する気だってことは分かるのですが、それはともかく勝手に解いてみました。

いわゆる「最短経路問題」だと思います。

https://wandbox.org/permlink/aKuxXgypijgPWHGq

バグ直しました。https://wandbox.org/permlink/oy8BWQg0awVc5b1U

気分転換で wandbox 直書きです。

数学的なこととか知らないし、公式そのまま使っただけです。 正しいかどうかも知りません。階乗使っているからだと思いますが、7 以上の入力があると正しい答えが出ません。多分オーバーフローしてます。

バグ直しました。main 関数の n の型からすべての型が推論されるようにしたつもりだったのですが、factorialrint になっていました。r も正しく推論されるように修正しました。7 以上の入力にも耐えます。