# 42. Pairs of Numbers

https://blog.csdn.net/qq_43521140/article/details/107853492

- 出题人:OJ
- 标签:["DFS and Similar"]
- 难度:简单
- 总分数:100

## 题目描述
<p>Let's assume that we have a pair of numbers (a,b). We can get a new pair (a+b,b) or (a,a+b) from the given pair in a single step.</p><p>Let the initial pair of numbers be (1,1). Your task is to find number k, that is, the least number of steps needed to transform (1,1) into the pair where at least one number equals n.</p>

## 解答要求
时间限制:1000ms, 内存限制:100MB

## 输入
<p>The input contains the only integer n (1 ≤ n ≤ 10<sup>6</sup>).<b>Process to the end of file</b>.</p>

## 输出
<p>Print the only integer k.</p>

## 样例
### 输入样例 1:
```
5
1
```
### 输出样例 1:
```
3
0

```
## 提示

```
package main
import "fmt"
var tmp int
var leastep int
func main() {
var n int
for {
_, err := fmt.Scanf("%d", &n)
if err != nil {
return
} else if n == 1 {
fmt.Printf("0\n")
continue
} else if n == 2 {
fmt.Printf("1\n")
continue
}
leastep = n - 1
for i:= 1;i<n;i++{
tmp = 0
dfs(n,i)
leastep = minint(tmp,leastep)
}
//leastep = n + 1
//for i := n/2 + 1; i < n && i/(n-i) <= leastep; i++ {
// leastep = minint(leastep, leaststeps(i, n-i, 1))
//}
fmt.Printf("%d\n", leastep)
}
}
func minint(a, b int) int {
if a >= b {
return b
} else {
return a
}
}
func dfs(a,b int){
if b == 1{
tmp += a-1
return
}
tmp += a/b
dfs(b,a%b)
}

func leaststeps(a, b, steps int) int {
if b == 1 {
return a - 1 + steps
} else if a%b == 0 {
return leastep + 1
} else if steps >= leastep {
return leastep + 1
} else {
return leaststeps(b, a%b, steps+a/b)
}
}

```

Pairs of Numbers 辗转相除的更多相关文章

  1. Alice and Bob 要用到辗转相减

    Alice and BobTime Limit: 1 Sec  Memory Limit: 64 MBSubmit: 255  Solved: 43 Description Alice is a be ...

  2. bzoj 2852: 强大的区间 辗转相除

    2852: 强大的区间 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 45  Solved: 12[Submit][Status][Discuss] D ...

  3. (中等) CF 585C Alice, Bob, Oranges and Apples,矩阵+辗转相除。

    Alice and Bob decided to eat some fruit. In the kitchen they found a large bag of oranges and apples ...

  4. BZOJ.4031.[HEOI2015]小Z的房间(Matrix Tree定理 辗转相除)

    题目链接 辗转相除解行列式的具体实现? 行列式的基本性质. //864kb 64ms //裸的Matrix Tree定理.练习一下用辗转相除解行列式.(因为模数不是质数,所以不能直接乘逆元来高斯消元. ...

  5. [Luogu1891]疯狂LCM[辗转相减法]

    题意 多组询问,每次给定 \(n\) ,求:\(\sum_{i=1}^nlcm(i,n)\) . \(\rm T \leq 3\times 10^4\ ,n \leq 10^6\). 分析 推式子: ...

  6. Luogu4111 [HEOI2015]小Z的房间 (矩阵树,辗转相除高斯消元)

    除法不能用于同余系,要辗转相除.注意不能加入柱子到矩阵. #include <iostream> #include <cstdio> #include <cstring& ...

  7. CF 403D Beautiful Pairs of Numbers

    The sequence of integer pairs (a1, b1), (a2, b2), ..., (ak, bk) is beautiful, if the following state ...

  8. 数据结构与算法C++描述学习笔记1、辗转相除——欧几里得算法

    前面学了一个星期的C++,以前阅读C++代码有些困难,现在好一些了.做了一些NOI的题目,这也是一个长期的目标中的一环.做到动态规划的相关题目时发现很多问题思考不通透,所以开始系统学习.学习的第一本是 ...

  9. POJ 2348 Euclid's Game(辗转相除博弈+自由度分析)

    题目链接:http://poj.org/problem?id=2348 题目大意:给你两个数a,b,Stan和Ollie轮流操作,每次可以将较大的数减去较小的数的整数倍,相减后结果不能小于0,谁先将其 ...

  10. Pairs of Numbers

    #include<stdio.h> //we have defined the necessary header files here for this problem. //If add ...

随机推荐

  1. 第三十六篇:vue3响应式(关于Proxy代理对象,Reflect反射对象)

    好家伙,这个有点难. 1.代理对象Proxy Proxy 对象用于创建一个对象的代理,从而实现基本操作的拦截和自定义(如属性查找.赋值.枚举.函数调用等). 拦截对象中任意属性的变化,包括:查get, ...

  2. 配置Windows server dhcp与AD域对接并使用Win1创的用户登录Win2

    创建两台windows_server_2012 创建步骤链接(https://www.cnblogs.com/zhengyan6/p/16338084.html) 注意:所有虚拟机都要在同意网段 配置 ...

  3. KingbaseES 创建只读(read_only)用户

    数据库版本: prod=> select version(); version --------------------------------------------------------- ...

  4. 高可用代理服务器实现keepalive+squid

    〇.前言 之前单机部署了squid代理服务器,现在实现一下高可用. 还有自定义squid的error页面 准备:两台centos7(1C2GB) ​ 三个可用IP,一主一备一虚拟IP(VIP) 一.安 ...

  5. 1.云原生之Docker容器技术基础知识介绍

    转载自:https://www.bilibili.com/read/cv15180540/?from=readlist

  6. k8s-ingress配置websocket支持

    具体来说,使用的ingress-controller不一样,有关的设置也不太一样 Kubernetes Ingress Controller (k8s官方) 参考 http://github.com/ ...

  7. CentOS6 配置阿里云 NTP 服务

    本文以Centos 6.5为例介绍如何修改Linux实例时区,以及开启和配置Linux NTP服务,保证实例本地时间精确同步. 前提条件 NTP服务的通信端口为UDP 123,设置NTP服务之前请确保 ...

  8. MySQL集群搭建(5)-MHA高可用架构

    1 概述 1.1 MHA 简介 MHA - Master High Availability 是由 Perl 实现的一款高可用程序,出现故障时,MHA 以最小的停机时间(通常10-30秒)执行 mas ...

  9. Beats & FileBeat

    Beats是一个开放源代码的数据发送器.我们可以把Beats作为一种代理安装在我们的服务器上,这样就可以比较方便地将数据发送到Elasticsearch或者Logstash中.Elastic Stac ...

  10. 《Vision Permutator: A Permutable MLP-Like ArchItecture For Visual Recognition》论文笔记

    论文题目:<Vision Permutator: A Permutable MLP-Like ArchItecture For Visual Recognition> 论文作者:Qibin ...