Rational Resistance
来源:互联网 发布:初中数学答题软件 编辑:程序博客网 时间:2024/06/05 14:16
迈克希望组装一些电子器件,他有无限多的1Ω的单位电阻,现在他想要用最少的单位电阻组装成一个电阻为a/b的电子器件,单位电阻之间可以串联也可以并联
[Intput]
输入一行两个正整数a,b(1 ≤ a, b ≤ 1018),表示要组装的值a/b,为最简分数,数据保证有解。
[Output]
输出一行一个答案。
[Sample ]
Input
Output
1 1
1
3 2
3
199 200
200
[Hit]
第一个样例,一个电阻足够;
第二个样例,2个并联,然后和一个串联。
第三个样例,199个串联,然后和一个并联。
思路:
可以推出递归公式:此时的电阻值为x/y,并联下一个电阻值为(y-x)/x,串联为(x-y)/y;
可以发现求串联的电路和求并联的电路是等价的,只是变量交换了位置。所以我们可以预先
判断大小并交换位置,就可以压缩为一个求值函数了。
边界为当y等于1时,返回x的值(就相当于此时的单个串并联的个数)。
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
long long a,b;
long long find(long long x,long long y)
{
if(y==1)return x;
else return x/y+find(y,x%y);
}
int main()
{
scanf("%I64d%I64d",&a,&b);
if(a>=b)
{
printf("%I64d",find(a,b));
}
if(a<b)
{
printf("%I64d",find(b,a));
}
return 0;
}
0 0
- Rational Resistance
- codeforces343A A. Rational Resistance
- C. Rational Resistance
- A. Rational Resistance----贪心
- CodeForces 343A Rational Resistance
- CodeForces 343A Rational Resistance
- codeforces 343A Rational Resistance
- Codeforces 344C - Rational Resistance
- codeforces #200 div2.C Rational Resistance [思维]
- Codeforces 344C Rational Resistance【思维+贪心】
- Resistance
- Codeforces Round #200 (Div. 2) C. Rational Resistance
- CodeForces - 344C Rational Resistance (模拟题 +递归求解)
- Codeforces Round #200 (Div. 2)344C Rational Resistance(模拟)
- CF#200 div2 C Rational Resistance(math gcd)
- Codeforces 501C Rational Resistance 迭代+思维
- Codeforces Round #200 (Div. 2) C. Rational Resistance(脑洞思维)
- superoj912 resistance
- openWRT初体验
- css 小问题解决方法整理
- S1.2.2 Rest服务
- 数据结构与算法0-算法复杂度度量初步认识
- tail VS cat VS grep(RedHat Linux)
- Rational Resistance
- MAC 升级到10.10(OS X Yosemite)后,compass失效
- #ifdef等宏
- day59,page80
- [命令技巧]mkdir -p
- poj 3255 Roadblocks
- Raspberry - 挂载U盘
- 使用putty起vncserver
- ASCII和Unicode编码详解