刚开始有一个阻值为1的电阻。
每次可以将一个电阻和某个阻值为1的电阻串联或者并联来获得一个新的电阻,问至少需要多少个阻值为1的电阻能凑出阻值为 ab(1≤a,b≤1018) 的电阻
假设当前手头上有 xy 的电阻,那么每一次加电阻可以将其变为 xx+y 或者 x+yy 的电阻。通过简单的模拟前五次左右的策略不看出规律
具体见代码
#include<bits/stdc++.h>
using namespace std;
#define LL long long
int main(){
LL a,b;
cin>>a>>b;
LL tim = 0;
do{
if(a > b) swap(a,b);
if(a == 1){
tim += b,b = 1;
}
else{
tim += b / a;
b %= a;
}
} while(a != 1 || b != 1);
cout<<tim<<endl;
return 0;
}