King's Cake
【思路】
递推
公式:f(n,m)=f(max(m,n-m),min(m,n-m))+1,n>m
【代码】
1 #include<cstdio> 2 #include<iostream> 3 using namespace std; 4 5 int max(int a,int b) 6 { 7 return a>b? a:b; 8 } 9 int min(int a,int b) 10 { 11 return a>b? b:a; 12 } 13 int f(int n,int m) 14 { 15 if(n==m) return 1; 16 return f(max(m,n-m),min(m,n-m))+1; 17 } 18 19 int main() 20 { 21 int T,n,m; 22 scanf("%d",&T); 23 while(T--) { 24 scanf("%d%d",&n,&m); 25 printf("%d\n",f(max(n,m),min(n,m))); 26 } 27 return 0; 28 }