标签:不难 lov ret min font 一点 pac 情况 ++i
这道题有一点点变态,不是说难度,而是这个作者。步骤如下:
(1)定义一个函数love,若当前爱意值为(a,b) ,那么开始判断a,b大小情况:
当a>b时,这个函数返回值为love(a-b,b)+1;
当a<b时,这个函数返回值为love(a,b-a)+1;
(2)函数定义好后,就令i=1,不断向上枚举,计算love(i,n-i){此时i不等于n-i},直至i=n/2;
并计算一个最小值min1=min(min,love(i,n-i));
(3) min即为所求值。
代码很简洁:
#include<bits/stdc++.h>
using namespace std;
int min1=1000000000;
int love(int a,int b){
if(a==1&&b==1) return 1;
if(a==2&&b==1) return 2;
if(a==1&&b==2) return 2;
if(a-b<0) return love(a,b-a)+1;
else return love(a-b,b)+1;
}
int main(){
int n;
cin>>n;
for(int i=1;i<=n/2;++i)
if(i!=n-i){
min1=min(love(i,n-i),min1);
}
cout<<min1<<endl;
return 0;
}
差不多是这样了,本人觉得这题并不难。
标签:不难 lov ret min font 一点 pac 情况 ++i
原文地址:https://www.cnblogs.com/qiuheqiuji/p/11172932.html