cokcslcm
土豆滚键盘
采纳率50%
2017-11-19 02:33 阅读 1.8k

求助 C++题目,出现堆栈溢出,怎么解决?

// 阶乘相加.cpp: 定义控制台应用程序的入口点。

#include "stdafx.h"
#include
using namespace std;

int fac(unsigned int);
int main()
{
int n = 0;
cin >> n;
while (n > 0)
{
int x = 0;
int y = 0;
x = fac(n);
--n;
y += x;
}
return 0;
}
int fac(unsigned int n)
{
long f = 0;
f = fac(n - 1)*n;
return f;
}

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2017-11-19 02:40

    int main()
    {
    int n = 0;
    cin >> n;
    int y = 0;
    while (n > 0)
    {
    int x = 0;
    x = fac(n);
    --n;
    y += x;
    }
    cout >> y;
    return 0;
    }

    点赞 1 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2017-11-19 02:34

    int fac(unsigned int n)
    {
    if (n == 1) return 1;
    long f = 0;
    f = fac(n - 1)*n;
    return f;
    }

    点赞 2 评论 复制链接分享
  • cokcslcm 土豆滚键盘 2017-11-19 02:39

    这样改不会堆栈溢出了,可是怎么调试时调试不出结果?调试出来是这样
    6
    请按任意键继续. . .

    点赞 评论 复制链接分享

相关推荐