简单C语言编程....己知ackerman函数,对于m>=0和n>=0的如下定义:
发布网友
发布时间:2022-05-14 05:25
我来回答
共4个回答
热心网友
时间:2024-02-24 10:55
这是最基本的递归用法的题目:我用3分钟编写如下:
并且调试成功。
#include<stdio.h>
int ack(int m,int n)
{
int x;
if(m==0&&n==1) x=2;
if(m==1&&n==0) x=2;
if(m>0&&n>0) x=ack(m-1,ack(m,n-1));
return x;
}
void main()
{
int m,n;
printf("Please input 2 int : m,n=");
scanf("%d%d",&m,&n);
printf("ack(m,n)=%d\n",ack(m,n));
}
热心网友
时间:2024-02-24 10:56
#include <stdio.h>
#include <stdlib.h>
int ack(int a,int b)
{
if(a==0)
return b+1;
else if(b==0)
return ack(a-1,1);
else
return ack(a-1,ack(a,b-1));
}
int main()
{
int m,n;
printf("输入m和n的值: \n");
scanf("%d %d",&m,&n);
printf("ack(%d,%d)=%d\n",m,n,ack(m,n));
system("pause");
return 0;
}
热心网友
时间:2024-02-24 10:56
#include<iostream>
using namespace std;
int ack(int ,int);
int main()
{
int m,n;
cout<<"输入m,n:"<<endl;
cin>>m>>n;
cout<<"结果是:"<<ack(m,n)<<endl;
return 0;
}
int ack(int m,int n)
{
int result;
if(m==0) result=n+1;
else if(n==0)
result=ack(m-1,1);
else result=ack(m-1,ack(m,n-1));
return result;
}
热心网友
时间:2024-02-24 10:57
#include<iostream>
using namespace std;
int ack(int m,int n){
if(m==0)return n+1;
if(n==0)return ack(m-1,1);
if(n>0&&m>0)return ack(m-1,ack(m,n-1));
return 0;
}
void main(){
int m,n;
cout<<"请输入m和n的值:";
cin>>m>>n;
cout<<ack(m,n)<<endl;
}