首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

2013-01-08 
碰到一道算法题 出了些非技术性问题...http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode11

碰到一道算法题 出了些非技术性问题...
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]; 
应该就可以了

热点排行