一道简单的ACM递归题?

发布于 2022-09-01 12:59:49 字数 1050 浏览 31 评论 0

我先把问题链接贴出来吧。
http://www.jisuanke.com/course/8/349
代码在我这里是跑出来了,不过到这官网的测试时就挂掉了。各位看官可以试一下,如果哪位在上面跑通了,麻烦回答一下。谢谢,我也献丑一下。撸个自己的。

#include <iostream>
using namespace std;
int n; 
bool opr[10]; 
bool found = false; 
void dfs(int deep, int sum) {
    // 请在下面的条件表达式中填上对应的值。
    if(deep==n) {
        if(sum==0){
            found = true;
            for(int i=1;i<=n;i++){
                cout<<i;
                if(i!=n && opr[i]==true)
                    cout<<" + ";
                else if(i!=n && opr[i]==false)
                    cout<<" - ";
            }
            cout<<endl;
        }
        return;
    }
    if(deep==1)
        sum=1;
    opr[deep]=true;
    dfs(deep+1,sum+deep+1);
    opr[deep] = false;
    dfs(deep+1,sum-deep-1 );

}
// main函数请自己完成哦,加油~
int main() {
    scanf("%d",&n);
    dfs(1,0);
    if(found==false)
        cout<<"None!"<<endl;
    return 0;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

围归者 2022-09-08 12:59:49

自问自答吧,,哈哈,其实原因很鸡肋的啦。。我多输出了一个感叹号。

cout<<"None"<<endl;

改成这样就好啦。

七禾 2022-09-08 12:59:49

没有在上面跑过。
但是scanf函数声明在头文件<cstdio>里。
必须要包括<cstdio>这个头文件

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文