引数nから値を求める簡単なプログラムを作成しましたが、
以下のプログラムでセグメンテーション違反がでます。
大きな数字の用いた時にコアダンプが生じます。
lldbを用いてデバッグしたところ、
func関数の返り値のところでbreakしていました。
ここまではわかったのですが、ここから先の解決方法がわかりません。
ご回答よろしくおねがいいたします。
c++
1#define ffor(i,a,b) for (int i=(a);i<(b);i++) 2#define rfor(i,a,b) for (int i=(b)-1;i>=(a);i--) 3#define rep(i,n) for (int i=0;i<(n);i++) 4#define rrep(i,n) for (int i=(n)-1;i>=0;i--) 5#include<iostream> 6#include<iomanip> 7#include<algorithm> 8#include<cmath> 9#include<string> 10#include<stack> 11#include<queue> 12#define SIZE 10000001 13#define MOD 1000000007 14#define INF 100000000 15using namespace std; 16 17int memo[SIZE]; 18int s = 10007; 19int func(int n){ 20 if(n == 3) return 1; 21 if(n <= 2) return 0; 22 if(memo[n] != 0) return memo[n]; 23 24 return memo[n] = (func(n-1)+func(n-2)+func(n-3))%s; 25} 26 27int main(){ 28 int n; 29 cin >> n; 30 31 cout << func(n) << endl; 32 33 return 0; 34} 35
追記
記入不足があり申し訳有りません。
SIZE以上の入力が出た時にコアダンプが出るという点は承知しております。
入力値が10^4程度だとエラーが出ないのですが、10^6くらいの値からエラーが出ます。
回答7件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/02 00:15
2017/03/02 00:28
2017/03/02 08:34