汉扬编程 C语言入门 C 语言实例-求两数的最大公约数

C 语言实例-求两数的最大公约数

用户输入两个数,求这两个数的最大公约数。

实例 – 使用 for 和 if

#include <stdio.h>

int main()

{

int n1, n2, i, gcd;

printf(\”输入两个正整数,以空格分隔: \”);

scanf(\”%d %d\”, &n1, &n2);

for(i=1; i <= n1 && i <= n2; ++i)

{

// 判断 i 是否为最大公约数

if(n1%i==0 && n2%i==0)

gcd = i;

}

printf(\”%d 和 %d 的最大公约数是 %d\”, n1, n2, gcd);

return 0;

}

运行结果:

输入两个正整数,以空格分隔: 81 15381 和 153 的最大公约数是 9实例 – 使用 while 和 if

#include <stdio.h>

int main()

{

int n1, n2;

printf(\”输入两个数,以空格分隔: \”);

scanf(\”%d %d\”,&n1,&n2);

while(n1!=n2)

{

if(n1 > n2)

n1 -= n2;

else

n2 -= n1;

}

printf(\”GCD = %d\”,n1);

return 0;

}

运行结果:

输入两个数,以空格分隔: 81 153GCD = 9实例 – 适用正数和负数

#include <stdio.h>

int main()

{

int n1, n2;

printf(\”输入两个数,以空格分隔: \”);

scanf(\”%d %d\”,&n1,&n2);

// 如果输入的是负数,将其转换为正数

n1 = ( n1 > 0) ? n1 : -n1;

n2 = ( n2 > 0) ? n2 : -n2;

while(n1!=n2)

{

if(n1 > n2)

n1 -= n2;

else

n2 -= n1;

}

printf(\”GCD = %d\”,n1);

return 0;

}

运行结果:

输入两个数,以空格分隔: 81 -153GCD = 9实例 – 使用递归

#include <stdio.h>

int hcf(int n1, int n2);

int main()

{

int n1, n2;

printf(\”Enter two positive integers: \”);

scanf(\”%d %d\”, &n1, &n2);

printf(\”%d 和 %d 的最大公约数为 %d\”, n1, n2, hcf(n1,n2));

return 0;

}

int hcf(int n1, int n2)

{

if (n2 != 0)

return hcf(n2, n1%n2);

else

return n1;

}

怎样用C语言求最大公约数和最小公倍数?算法怎样写?

最大公倍数:

int bei(int x,int y)

{

int i=1,j=1,k=1;

while(i)

{

if(x*j==y*k)return(x*j);

else if(x*j全部

上面回答题者是是错的..

语法都不对

int yue(int x,int y){

int n;

while(x%y){

n=x%y;

x=y;

y=n;

}

return n;

}

int bei(int x,int y)

{

return x*y/yue(x,y);

}

本文来自网络,不代表汉扬编程立场,转载请注明出处:http://www.hyzlch.com/cjia/6176.html

C语言 编写函数strcat把给定的两个字符串连接起来

一元二次方程的根 ax平方 bx c=0 C语言 编程序

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

返回顶部