求两个数的最大公约数的程序。。。谢谢
----------------解决方案--------------------------------------------------------
main()
{
int min,max;
int temp;
clrscr();
scanf("%d %d",&min,&max);
if(max<min) /*使得max中存放较大的数,min存放较小的数*/
{
temp=min;
min=max;
max=temp;
}
while(max%min!=0)
{
temp=min;
min=max%min;
max=temp;
}
printf("%d",min);
getch();
}
----------------解决方案--------------------------------------------------------
LZ要自己多想想~``
自己才能真正有收获
----------------解决方案--------------------------------------------------------
int gcd(int a,int b){
int t;
while(a){
t =b;
b =b%a;
a =t;
}
return b;
}
----------------解决方案--------------------------------------------------------
3楼说得对,
看别人做出来的程序是一种不可取的捷径.
----------------解决方案--------------------------------------------------------
#include<stdio.h>
void main()
{
int m,n,p;
printf("Input two numbers:");
scanf("%d%d",&m,&n);
while(m%n != 0){
p = m%n;
m = n;
n = p;
}
printf("最大公约数是%d\n",n);
}
----------------解决方案--------------------------------------------------------
谢谢大家,我会自己研究的。。。谢谢
----------------解决方案--------------------------------------------------------
/*
最小公约数
和最大公倍数
*/
#include <stdio.h>
#include <math.h>
int MaxDiv(int,int);
int MinDum(int,int);
int MaxDiv(int a, int b) /*最大公约数 */
{
int t;
if(a>b)
{
t=a;
a=b;
b=t;
}
while(b%a!=0)
{
t=b%a;
b=a;
a=t;
}
return a;
}
int MinDum(int a,int b) /*最小公倍数 */
{
int t,sum;
t=MaxDiv(a,b);
sum=(a/t)*(b/t)*t;
return sum;
}
int main(void)
{
int a,b,t;
if(scanf("%d,%d",&a,&b)==2)
{
t=MaxDiv(a,b);
printf("the max div is %d\n",t);
t=MinDum(a,b);
printf("the Min Dum is %d\n",t);
getchar();
}
else
{
printf("input err\n");
getchar();
}
getchar();
return 0;
}
综合别人的加自己的思考......
[此贴子已经被作者于2007-4-11 15:44:13编辑过]
----------------解决方案--------------------------------------------------------
lgh198168
谢谢你的解答,谢谢把我想问的也一并回来了,谢谢
----------------解决方案--------------------------------------------------------
上有规律,下有对策。
----------------解决方案--------------------------------------------------------