编程语言应用

注册

 

发新话题 回复该主题

C语言实例求两数的最大公约数 [复制链接]

1#

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

实例-使用for和if

#includestdio.hintmain()

{intn1,n2,i,gcd;printf("输入两个正整数,以空格分隔:");

scanf("%d%d",n1,n2);for(i=1;i=n1i=n2;++i){//判断i是否为最大公约数if(n1%i==0n2%i==0)gcd=i;

}printf("%d和%d的最大公约数是%d",n1,n2,gcd);return0;

}

运行结果:

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

#includestdio.hintmain()

{intn1,n2;printf("输入两个数,以空格分隔:");

scanf("%d%d",n1,n2);while(n1!=n2){if(n1n2)n1-=n2;

elsen2-=n1;

}printf("GCD=%d",n1);return0;

}

运行结果:

输入两个数,以空格分隔1GCD=9实例-适用正数和负数

#includestdio.hintmain()

{intn1,n2;printf("输入两个数,以空格分隔:");

scanf("%d%d",n1,n2);//如果输入的是负数,将其转换为正数n1=(n10)?n1:-n1;

n2=(n20)?n2:-n2;while(n1!=n2){if(n1n2)n1-=n2;

elsen2-=n1;

}printf("GCD=%d",n1);return0;

}

运行结果:

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

#includestdio.hinthcf(intn1,intn2);intmain()

{intn1,n2;printf("输入两个正整数:");

scanf("%d%d",n1,n2);printf("%d和%d的最大公约数为%d",n1,n2,hcf(n1,n2));return0;

}inthcf(intn1,intn2)

{if(n2!=0)returnhcf(n2,n1%n2);

elsereturnn1;

}

预览时标签不可点收录于话题#个上一篇下一篇
分享 转发
TOP
发新话题 回复该主题