12-语言入门-12-公约数和公倍数

题目地址:?http://acm.nyist.net/JudgeOnline/problem.php?pid=40?

?

?

描述
小明被一个问题给难住了,现在需要你帮帮忙。问题是:给出两个正整数,求出它们的最大公约数和最小公倍数。

输入
第一行输入一个整数n(0<n<=10000),表示有n组测试数据;
随后的n行输入两个整数i,j(0<i,j<=32767)。

输出
输出每组测试数据的最大公约数和最小公倍数

样例输入
3
6 6
12 11
33 22
样例输出
6 6
1 132
11 66

?

?

代码:

#include <stdio.h>

//计算a和b的最小公倍数
static int calCommonMultiple(int a,int b,int maxCommonDivisor);
//计算a和b的最大公约数
static int calCommonDivisor(int a,int b);

int main()
{
???? int readLen = 0;
???? scanf("%d",&readLen);
???? getchar();
????
???? while(readLen > 0)
???? {
????????? int a = 0;
????????? int b = 0;
????????? scanf("%d %d",&a,&b);
????????? getchar();
?????????
????????? int divisorNum = calCommonDivisor(a,b);
????????? int multipleNum = calCommonMultiple(a,b,divisorNum);
?????????
????????? printf("%d %d\n",divisorNum,multipleNum);
?????????
????????? --readLen;
???? }
????
???? return 0;
}

//计算a和b的最小公倍数
static int calCommonMultiple(int a,int b,int maxCommonDivisor)
{
???? return a*b/maxCommonDivisor;
}

//计算a和b的最大公约数
static int calCommonDivisor(int a,int b)
{
???? int maxNum = a>b?a:b;
???? int minNum = a<b?a:b;
????
???? int midResult = maxNum % minNum;
???? while(midResult != 0)
???? {
????????? maxNum = minNum;
????????? minNum = midResult;
????????? midResult = maxNum % minNum;
???? }
????
???? return minNum;
} ? ? ? ?

?

?

总结:

用到了辗转相除法。

数学还是很重要的,尤其感觉在计算机图形学和工程类软件中的重要性。

?

时间: 2024-10-25 09:35:58

12-语言入门-12-公约数和公倍数的相关文章

《30天自制操作系统》笔记(12)——多任务入门

<30天自制操作系统>笔记(12)——多任务入门 进度回顾 上一篇介绍了设置显示器高分辨率的方法.本篇讲一下操作系统实现多任务的方法. 什么是多任务 对程序员来说,也许这是废话,不过还是说清楚比较好. 多任务就是让电脑同时运行多个程序(如一边写代码一边听音乐一边下载电影). 电脑的CPU只有固定有限的那么一个或几个,不可能真的同时运行多个程序.所以就用近似的方式,让多个程序轮换着运行.当轮换速度够快(0.01秒),给人的感觉就是"同时"运行了. 多任务之不实用版 我们首先从

C语言第12轮:指针

C语言第12轮:指针 [学习目标] 1.        指针 2.        指针与数组 A: 指针的概念 内存存储单元按字节排序.每一个字节编有序号.我们称之为地址.因为能够通过地址就能够找到所要的内存单元,所以我们把地址成为指针.指针是个特殊的变量,它里面存储的数值被解释为内存里的一个地址 作用: (1)       指针能够有效地表示复杂数据结构,如队列.栈.链表等 (2)       指针能够像汇编一样处理内存地址,为动态内存分配提供支持 (3)       指针能够实现对数组和字符

&#8203;用c语言打印自定义的乘法口诀表。例如:输入9,输出9*9口诀表,输入12,输出12*12的乘法口诀表。

用c语言打印自定义的乘法口诀表.例如:输入9,输出9*9口诀表,输入12,输出12*12的乘法口诀表. #include <stdio.h> int main () { int n; int i, j; printf ("请输入要打印多大的乘法口诀表"); scanf ("%d",&n); for (j=1; j<=n; j++) { for(i=1; i<=j; i++) { printf ("%d*%d=%2d &quo

Cesium入门12 - Camera Modes - 相机模式

Cesium入门12 - Camera Modes - 相机模式 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 为了展现我们的无人机飞行,让我们用相机模式进行实验.我们将保持简单的两个基本的相机模式,用户可以切换之间. Free Mode : 默认相机控制. Drone Mode : 让相机跟随无人机通过飞行在一个固定的距离. 自由模式不需要代码,因为它使用默认控件.至于无人机跟随模式,我们可以使用摄像机的

【南阳OJ分类之语言入门】80题题目+AC代码汇总

声明: 题目部分皆为南阳OJ题目. 代码部分包含AC代码(可能不止一个)和最优代码,大部分都是本人写的,并且大部分为c代码和少部分c++代码and极少java代码,但基本都是c语言知识点,没有太多差别,可能代码有的写的比较丑,毕竟知识有限. 语言入门部分题基本都较为简单,是学习编程入门的很好练习,也是ACM的第一步,入门的最佳方法,望认真对待. 本文由csdn-jtahstu原创,转载请注明出处,欢迎志同道合的朋友一起交流学习.本人QQ:1373758426和csdn博客地址. now begi

nyist 40 公约数和公倍数

公约数和公倍数 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述 小明被一个问题给难住了,现在需要你帮帮忙.问题是:给出两个正整数,求出它们的最大公约数和最小公倍数. 输入 第一行输入一个整数n(0<n<=10000),表示有n组测试数据;随后的n行输入两个整数i,j(0<i,j<=32767). 输出 输出每组测试数据的最大公约数和最小公倍数 样例输入 3 6 6 12 11 33 22 样例输出 6 6 1 132 11 66 #include &l

R语言入门心得(3) -- 向量相关

向量定义 R在实际应用中比较常用的一个对象就是向量(Vector).向量的创建格式为 向量名 = c(x1,x2,x3,…..)  或  向量名 <- c(x1,x2,x3,…..) 或  c(x1,x2,x3,…..) -> 向量名 或  Assign("向量名", c(x1,x2,x3,…..)),c()为向量赋值函数,c()可以有任意多个参数,而起返回值则是一个把这些参数首尾相连形成的向量.你可以在命令行中输入?c或者help(c)来查看函数的详细信息.例如我们要创建

c语言入门经典(第5版)

文章转载:http://mrcaoyc.blog.163.com/blog/static/23939201520159135915734 文件大小:126MB 文件格式:PDF    [点击下载] C语言入门经典(第5版)  内容简介: C语言是每一位程序员都应该掌握的基础语言.C语言是微软.NET编程中使用的C#语言的基础:C语言是iPhone.iPad和其他苹果设备编程中使用的Objective-C语言的基础:C语言是在很多环境中(包括GNU项目)被广泛使用的C++语言的基础.C语言也是Li

Swift语言入门之旅 (翻译自《The Swift Programming Language》电子书)

关于Swift Swift是为IOS和OSX应用制定的新编程语言,吸取C和Objective-C语言的精粹,但不损失与C语言的兼容性.Swift采用安全编程模型.加入了各种现代编程语言特性,使得该语言更易被掌握.更具扩展性,用起来更有趣.Swift语言的奠基石是已经成熟的.并为大家所喜爱的Cocoa和Cocoa Touch框架,新语言使大家可以尽情畅想新软件开发的机遇. Swift沉积了多年的研发成果,苹果公司为提供高效Swift语言编译器.调试器和基础架构打下了坚实基础.我们使用Automat

Swift语言入门之旅

学习一门新的计算机语言,传统来说都是从编写一个在屏幕上打印"Hello world"的程序开始的.那在 Swift,我们使用一句话来实现它: println("Hello, world") 如果你编写过C或者Objective-C语言,Swift中的这个语法看起来便很熟悉,这句话却是一个完整的程序 .你无须为了得到输入/输出或字符串处理去导入一个独立的功能库.编写全局代码通常用于程序的进入 点.你不需要写一个main函数,你也不需要为每个语句写个逗号作为结尾. 这个