c语言求最大公约数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言求最大公约数相关的知识,希望对你有一定的参考价值。
1、新建一个C语言源程序,这里使用Visual C++6.0的软件:
2、从键盘中输入两个正整数a和b。取两个数a,b中的较小值存放到变量n中。从两个数a和b中的较小数开始逐个减小1,寻找能整除a和b的整数,第一个找到的整数即整数a和b的最大公约数,最后将找到的结果输出即可完成程序的编写:
3、对源程序编译运行,测试输入4、6,得到最大公约数2说明程序是正确的,以上就是用c语言求最大公约数的过程:
可以按照数学规则,寻找最大的可以同时被两个数整除的数值,即为最大公约数。
代码如下:
int gcd(int a, int b)int n = a<b?a:b;//从ab中的最小值开始计算。
while(n>=1)
if(a%n==0 &&b%n==0) break;//最大公约数。
return n;
参考技术B #include
"stdio.h"
int
main()
int
d1,d2,r;
printf("输入两个正整数:");
scanf("%d
%d",&d1,&d2);
do
r=d1%d2;
d1=d2;d2=r;
while(d2!=0);
printf("最大公约数是:%d",d1);
//递归法
#include
"stdio.h"
int
fun(int
d1,int
d2)
if(d2!=0)
return
fun(d2,d1%d2);
else
return
d1;
int
main()
int
d1,d2;
printf("输入两个正整数:");
scanf("%d
%d",&d1,&d2);
printf("最大公约数是:%d",fun(d1,d2));
参考技术C 楼主好~
#include<stdio.h>
int main()
int n,a,b,c;
printf("请输入两个整数(逗号隔开):");
scanf("%d,%d",&a,&b);
n=b;
c=a%b;
while(c!=0)
a=b;
b=c;
c=a%b;
printf("\n最大公约数是:%d\n",b);
return 0;
本回答被提问者和网友采纳 参考技术D 这个交换保证大数除(取余)小数,如果小数在前,会得不到正确的结果
小白.C语言怎么求多个数的最大值
例:有数组 unsigned int x[n];
那么: unsigned int iMax=0;
for(unsigned int i=0;i<n;i++)
if( iMax < x[i] ) iMax=x[i];
就是把数组数值过一遍罢了, 数组类型不一样的话,自己调整一下代码. 参考技术A #define MAX 10
#include <stdio.h>
void main( )
/* 本程序中是以求 10 个数字的最大值为例,该 MAX 宏定义可以根据需要自行修改 */
int i = 0 , num[MAX] , max_value = 0 ;
for( i = 0 ; i < MAX ; i ++ )
scanf( "%d", &num[i] ) ;
for( i = 0 ; i < MAX ; i ++ )
if( num[i] > max_value )
max_value = num[i] ;
printf("MAX VALUE is: %d\n", max_value ) ;
以上是关于c语言求最大公约数的主要内容,如果未能解决你的问题,请参考以下文章