题意:给出两个数a,b,问最少用多少个电阻为1的电阻用串联或并联的方式凑成a/b的电阻
思路:n个为1的电阻并联之后电阻为1/n,如果a/b的电阻大于1,所以整数部分我们用整数个为1的电阻串联,然后我们得到一个小于1的的电阻,这个电阻肯定是并联得到,由并联电阻公式,我们可以取这个分数的倒数,然后继续贪心,直到a为1,a为1时,1/b就是b个电阻并联
#include <iostream>
#include <algorithm>
using namespace std;
int main(void){
long long a,b;
cin >> a >> b;
long long ans = 0 ;
while(1){
if(a < b){
swap(a,b);
}
long long k = a / b;
ans += k;
a -= k * b;
if(a == 0){
break;
}
}
cout << ans << endl;
return 0;
}