您的位置:首页 > 其它

从TAOCP开始,看看两数交换的简单实现

2014-07-15 00:00 996 查看
接下来,我们进入另外一个算法探讨(TAOCP的算法E0):

E0.[确保m >= n] 如果 m

这种算法题很简单,刚学C语言的人也能轻易写出,比如:

#include "stdio.h"
void main()
{
int m,n,k;
printf("请输入两个不同的整数:\n");
scanf("%d%d",&m,&n);
printf("m = %d, n = %d\n", m, n);
if(m
其实 TAOCP 引出 E0 这个算法小片段的本意是辗转相除法可能会用到交换两数,比如两个数的最小公倍数和最大公约数。通过反复求余运算直至余数为0,来求得最大公约数。一般要求第一个数大于第二个数。最小公倍数可由m,n和最大公约数(bcd)得到。scm=m*n/bcd. 给出的程序如下:

#include "stdio.h"
void main()
{
int m,n,t,k,r;
printf("Please input two positive integers:\n");
scanf("%d%d",&m,&n);
t=m*n;
if(m
虽然交换两数是本小节的一个算法片段,我们也不妨借题发挥,深入探讨一下交换两数的更多细节。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  交换