Codeforces 343 A

传送门

题目大意

一 个 电 阻 器 件 电 阻 R 0 = 1 两 个 电 阻 器 件 可 以 串 联 也 可 以 并 联 串 联 R = R 1 + R 2 并 联 R = 1 1 R 1 + 1 R 2 问 合 成 a b 最 少 需 要 多 少 个 电 阻 一个电阻器件电阻R_0=1\\两个电阻器件可以串联也可以并联\\串联R=R_1+R_2\\并联R=\frac{1}{\frac{1}{R_1}+\frac{1}{R_2}}\\问合成\frac{a}{b}最少需要多少个电阻 R0=1R=R1+R2R=R11+R211ba

思路

答 案 就 是 欧 几 里 得 辗 转 相 除 法 的 步 数 设 当 前 电 阻 为 c d 串 联 : c d + 1 = c + d d 并 联 : 1 1 c d + 1 1 = 1 d c + 1 1 = 1 c + d c = c c + d 我 们 可 以 用 给 出 的 a , b 不 断 用 大 数 减 去 小 数 , 直 到 有 一 个 数 为 零 , 每 减 一 次 就 要 加 一 答案就是欧几里得辗转相除法的步数\\设当前电阻为\frac{c}{d}\\串联:\frac{c}{d}+1=\frac{c+d}{d}\\并联:\frac{1}{\frac{1}{\frac{c}{d}}+\frac{1}{1}}=\frac{1}{\frac{d}{c}+\frac{1}{1}}=\frac{1}{\frac{c+d}{c}}=\frac{c}{c+d}\\我们可以用给出的a,b不断用大数减去小数,直到有一个数为零,每减一次就要加一 dcdc+1=dc+ddc1+111=cd+111=cc+d1=c+dca,b

代码

int main()
{
	ll a,b;
	scanf("%lld%lld",&a,&b);
	ll ans=0;
	while(b!=0){
		ans+=a/b;
		ll c=a%b;
		a=b;
		b=c;
	}
	printf("%lld\n",ans);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值