【发布时间】:2019-08-11 16:07:44
【问题描述】:
我刚刚在 youtube 上观看了有关 akm 功能的视频,我试图实现它。
我实际上写了一个代码,忘记在变量之间留空格(为了便于阅读),但程序没有打印任何东西,但它一直在计算。
我认为类似的语法可以正常工作。是不是我做错了什么?
这是代码:
#include <bits/stdc++.h>
using namespace std;
int akm(int m,int n) {
if(m==0) return n+1;
else if(n==0) return akm(m-1,1);
else return akm(m-1 , akm(m,n-1));
}
int main() {
for(int i=0;i<6;i++)
for(int j=0;j<6;j++) {
cout<<i<<" "<<j ;
cout<<akm(i,j);
}
}
【问题讨论】:
-
无关:
#include <bits/stdc++.h> using namespace std;引导我建议您观看不同的视频。错误想法的组合可能会导致令人震惊的奇怪错误。阅读Why is “using namespace std” considered bad practice? 和Why should I not #include <bits/stdc++.h>?,了解更多关于为什么你不想单独使用这两种语句的信息。 -
看起来不错。你说它根本不打印任何东西?
-
您确定您的程序不会花费很长时间吗?您不会在每次写入时都刷新,所以它只会在程序退出时刷新
-
是的,我也在许多平台上尝试过,但一如既往没有输出
-
ack(4,2) 超出了 int 的限制。