前提・実現したいこと
問題文のリンクです
https://atcoder.jp/contests/abc163/tasks/abc163_d
実行時エラーの修正ができません
どう直したらいいか教えてください
発生している問題・エラーメッセージ
実行時エラー
該当のソースコード
#include <bits/stdc++.h> using namespace std; int facctorialMethod(int k){ int sum = 1; for (int i = 1; i <= k; ++i) { sum *= i; } return sum; } int main() { int N,K; cin >> N >> K; int sum = 0; for(int i = 0;i<N-K+2;i++){ sum += facctorialMethod(N+1)/facctorialMethod(N+1-(K+i))/facctorialMethod(K+i); } cout << sum << endl; }
試したこと
上の画像のように各場合の組み合わせの和を計算すれば答えが出ると思いました
組み合わせの公式を使おうとすると階乗が必要になるので階乗の値を求めてくれるfacctorialMethodという関数をネットから引っ張ってきました
これで答えが出るはずだと思ったんですが実行時エラーが出てしまいました
実行時エラーが出るときは計算量が多すぎて処理に時間がかかるからと勉強しました
ということは上のプログラムは計算量が膨大すぎるのでしょうか?
もし、考え方が間違ってなければ計算量を少なくするためのプログラムの書き方を教えてほしいです
よろしくお願いします
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/20 01:01
2020/04/20 01:02