18.2.13 codevs1212 最大公约数

题目描述 Description

求两个数A和B的最大公约数。 1<=A,B<=2^31-1

输入描述 Input Description

两个整数A和B

输出描述 Output Description

最大公约数gcd(A,B)

样例输入 Sample Input

8 12

样例输出 Sample Output

4

 1 #include <iostream>
 2 #include<math.h>
 3
 4 using namespace std;
 5
 6 long dig(long x,long y)//y>x
 7 {
 8     long yy=x,xx=y%x;
 9     if(xx==0)
10         return x;
11     else
12         dig(xx,yy);
13 }
14
15 int main()
16 {
17     long x,y;
18     cin>>x>>y;
19     if(x<=y)
20         cout<<dig(x,y);
21     else
22         cout<<dig(y,x);
23     return 0;
24 }

求解最大公约数最常见的两种办法:辗转相除法和更相减损法

难道只有我一个人完全不知道这两种方法是啥玩意?!

辗转相除法

原文地址:https://www.cnblogs.com/yalphait/p/8447582.html

时间: 2024-10-07 10:26:46

18.2.13 codevs1212 最大公约数的相关文章

18.2.13 codevs1012 最大公约数和最小公倍数问题

1012 最大公约数和最小公倍数问题 2001年NOIP全国联赛普及组 题目描述 Description 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件:  1.P,Q是正整数 2.要求P,Q以x0为最大公约数,以y0为最小公倍数. 试求:满足条件的所有可能的两个正整数的个数. 输入描述 Input Description 二个正整数x0,y0 输出描述 Output Description 满足条件的所有可

Day 18(06/13) 文件处理、函数

一.文件处理流程 二.基本操作 2.1 文件操作基本流程初探 2.2 文件编码 2.3 文件打开模式 2.4 文件内置函数flush 2.5 文件内光标移动 2.6 open函数详解 2.7 上下文管理 2.8 文件的修改 一.文件处理流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 二.基本操作 2.1 文件操作基本流程初探 f = open('chenli.txt') #打开文件 first_line = f.readline() print('first li

18.11.13 二叉树三则

二叉树的深度(10分) 题目内容: 给定一棵二叉树,求该二叉树的深度 二叉树深度定义:从根结点到叶结点依次经过的结点(含根.叶结点)形成树的一条路径,最长路径的节点个数为树的深度 输入格式: 第一行是一个整数n,表示二叉树的结点个数.二叉树结点编号从1到n,根结点为1,n <= 10 接下来有n行,依次对应二叉树的n个节点. 每行有两个整数,分别表示该节点的左儿子和右儿子的节点编号.如果第一个(第二个)数为-1则表示没有左(右)儿子 输出格式: 输出一个整型数,表示树的深度 输入样例: 3 2

【Linux下禁用rm命令之建立回收站】 -- 2019-08-08 18:02:13

原文: http://106.13.73.98/__/86/ 第一步 创建回收站目录 # 根据自己的习惯,找个位置创建一个用作回收文件的目录 # 我们这里将在root目录下面创建一个名为".trash"的隐藏文件 [[email protected] ~]# mkdir .trash 第二步 创建回收站脚本文件 # 同样是根据自己的习惯找个位置创建 [[email protected] ~]# vim .remove.sh 打开后在文件内写入如下代码: # 指定第一步骤中创建的回收站目

18寒假13测

题目名称 buy slide divide 输入 buy.in slide.in divide.in 输出 buy.out slide.out divide.out 每个测试点时限 1秒 1秒 1秒 内存限制 256MB 256MB 256MB 测试点数目 10 10 10 每个测试点分值 10 10 10 是否有部分分 无 无 无 题目类型 传统 传统 传统 buy description: 地主zxr想买一些长方形的土地,所有的土地可以分为若干组,每一组的土地的价格为这一组里的最长的长乘上最

这两天做东西出现的低级错误[2004年4月18日 13:38]bfssqs0tg

如果说互联网解决信息不对称,移动互联网解决沟通不及时,那么区块链解决的是信任难建立和价值难共享.比特币3.0时代已经到来,3.0时代意味着"随处可用的区块链".如何实现随处可用?吴萌野老师认为,一是基础链,二是中间件.有关基础链的技术问题和解决方案,吴萌野老师给出的答案是从计算层的改进方向:一是采用更快速的智能合约容器和运行时,并优化共识节点规模.谈到中间件,他希望通过中间件搭建连接互联网云服务和区块链智能合约的中间桥梁,推动区块链应用生态规模化落地. 吴萌野1999年毕业于是清华大学

18.8.13 考试总结

1.1 问题描述请构造一颗n 个节点的树,使得其价值最大.f(d) 表示树上,度数为d 的一个点能够获取的价值.这棵树的价值为Σni=1 f(di)di 表示第i 个点的度数1.2 输入第一行一个整数T,接下来T 组数据,每组数据输入两行.第一行输入整数n.第二行输入n ?? 1 个整数f(i) 代表f(1) f(n ?? 1).1.3 输出对于每组数据输出一行,为能够构造的树的最大价值. 一开始我以为是一道树形dp... 考完了才知道原来这个是一道背包问题 n个节点 总共有2n - 2个度数

最大公约数数问题

欧几里得算法,辗转相除法,能很快求得最大公约数 f(20,15)=f(15,5)=f(5,0)=5 1 #include <stdio.h> 2 #include <stdlib.h> 3 //最大公约数 4 int gcd(int x,int y) 5 { 6 if(x<y) 7 return gcd(y,x); 8 if(y==0) 9 return x; 10 else 11 return gcd(y,x%y); 12 13 } 14 15 int main() 16

9月13日-9月15日课程作业(练习)

9月13日-9月15日课程作业(练习)   5.写一个脚本:如果某路径不存在,则将其创建为目录:否则显示其存在,并显示内容类型:(不要怀疑,就是这么简单) 1 #!/bin/bash2 #3 #4 if [ $# -ne 1 ];then5 echo "please input one parameter"6 exit 37 fi8 9 if [ -e $1 ];then10 echo $(file $1)11 else12 mkdir -p $113 echo "make