2656 阿克曼函数

阿克曼(Arkmann)函数 A(m,n) 中,m与n的定义域是非负整数且本题中m<=3,n<=16。   函数的定义为 QQ图片20191204211400.png

输入 两个整数 m n 输出 一个整数,akm(m,n)的结果 输入样例 1 1 输出样例 3

思路 : 通过打表找规律 , 当 m = 0 时 , n = 1 , 2 , .. n     a[0,i] = i+1 ; 当 m = 1 时 , n = 1 , 2 , ... n    a[1,i] = i+2 ; 当 m = 2 时 , n = 1 , 2 , .... n    a[2,i] = 2*i +3 ; 当 m = 3 时 , a[3,i] = a[2,f[3,i-1]] ; i =1 ,2... 16

#include<iostream> 
#include<string>
#include<cstring> 
#include<cstdio>
using namespace std ; 
typedef long long LL; 
LL m , n  ; 

int main() {
	
	LL ans = 0 ; 
 	cin >> m >> n ; 
 	
 	if(m == 0)  ans = n+ 1 ; 
 	else if(m == 1 ){
 		ans = n+2 ; 
	}
	else if (m == 2 ){
		ans = 2*n+3 ; 
	}
	else {
		int t = 5 ; 
		for(int i = 1 ;i<=n ;i++) {
			t = t*2 +3 ; 
		}	
		ans = t ;
			
	}
	
	cout<<ans; 

	return 0 ; 
}

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×