【C语言实例100(二)】

【C语言实例100(二)】,第1张

C语言实例26-27
    • 26.求两数的最大公约数
      • 26.1 for循环实现
        • 26.1.1 代码
        • 26.1.2 运行结果
      • 26.2 while循环实现
        • 26.2.1 代码
        • 26.2.2 运行结果
      • 26.3 适用正数和负数
        • 26.3.1 代码
        • 26.3.2 运行结果
      • 26.4 使用递归实现
        • 26.4.1 代码
        • 26.4.2 运行结果
    • 27.求两数最小公倍数
      • 27.1 while循环实现
        • 27.1.1 代码
        • 27.1.2 运行结果
      • 27.2 通过计算最大公约数
        • 27.2.1 代码
        • 27.2.2 运行结果

26.求两数的最大公约数 26.1 for循环实现 26.1.1 代码
#if 0
int main()
{
	int n1, n2, i, gcd;
 
    printf("输入两个正整数: \n");
    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);
	system("pause");
	return 0;
}
#endif
26.1.2 运行结果

26.2 while循环实现 26.2.1 代码
#if 0
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);
	system("pause");
	return 0;
}
#endif
26.2.2 运行结果

26.3 适用正数和负数 26.3.1 代码
#if 1
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);
	system("pause");
	return 0;
}
#endif
26.3.2 运行结果

26.4 使用递归实现 26.4.1 代码
#if 1
int main()
{
	int n1, n2;
	printf("输入两个正整数: ");
	scanf("%d %d", &n1, &n2);
 
	printf("%d 和 %d 的最大公约数为 %d", n1, n2, hcf(n1,n2));
	system("pause");
	return 0;
}

int hcf(int n1, int n2)
{
	if (n2 != 0)
		return hcf(n2, n1%n2);
    else
		return n1;
}
#endif
int hcf(int n1, int n2);//函数声明
26.4.2 运行结果

27.求两数最小公倍数 27.1 while循环实现 27.1.1 代码
#if 1
int main()
{
	int n1, n2, minMultiple;
    printf("输入两个正整数: ");
    scanf("%d %d", &n1, &n2);
 
    // 判断两数较大的值,并赋值给 minMultiple
	minMultiple = (n1>n2) ? n1 : n2;
 
    // 条件为 true
	while(1)
	{
		if( minMultiple%n1==0 && minMultiple%n2==0 )
		{
			printf("%d 和 %d 的最小公倍数为 %d", n1, n2,minMultiple);
            break;
        }
        ++minMultiple;
    }
	system("pause");
	return 0;
}
#endif
27.1.2 运行结果

27.2 通过计算最大公约数 27.2.1 代码
#if 1
int main()
{
	int n1, n2, i, gcd, lcm;
 
    printf("输入两个正整数: ");
    scanf("%d %d",&n1,&n2);
 
    for(i=1; i <= n1 && i <= n2; ++i)
	{
	// 判断最大公约数
		if(n1%i==0 && n2%i==0)
			gcd = i;
    }
	lcm = (n1*n2)/gcd;
    printf("%d 和 %d 的最小公倍数为 %d", n1, n2, lcm);
	system("pause");
	return 0;
}
#endif
27.2.2 运行结果

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/564184.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-03
下一篇 2022-04-03

发表评论

登录后才能评论

评论列表(0条)

保存