MyException - 我的异常网
当前位置:我的异常网» 数据结构与算法 » 碰到一道算法题 出了些非技术性有关问题.

碰到一道算法题 出了些非技术性有关问题.

www.MyException.Cn  网友分享于:2013-01-09  浏览:2次
碰到一道算法题 出了些非技术性问题...
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1163


ZOJ上的一道动态规划...用了网上最常见的方法做...思路应该是对的...但是VS2008出问题了!百思不得其解啊!!系统显示Stack flow!!怎么会这样子??应该怎么解决??求教各位大牛了!!解析一下谢谢!!


代码如下!!
#include<iostream>
#include <stdio.h>
#include<cstring>
using namespace std;
#define N 500
int main()
{
double arr[N][N];
memset(arr,0,sizeof(arr));
int n=0;
for(int k=0;k<N;k++)
arr[k][k]=1;
for(int i=0;i<N;i++)
for(int j=i-1;j>=0;j--)
arr[i][j] = arr[i-j][j+1]+arr[i][j+1];

while(cin>>n)
{
if(n==0)
return 0;
cout<<arr[n][1]-1<<endl;

}

------解决方案--------------------
栈溢出了,你定义的临时数组double arr[N][N]; 太大了 500 * 500 * 8 = 2000000 = 200M了
把数组声明为
static double arr[N][N];  
或全局变量
double arr[N][N]; 
应该就可以了

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有