#include<stdio.h>
#include<stdlib.h>
int m,n,k=1;
void divide();
void subtract();
void exhaustion();
void menu();
int main()
{
while(k)
{
menu();
}
system("pause");
return 0;
}
void divide() /*辗转相除法*/
{
int a,b,c;
printf("Input two integer numbers:(a/b)\n");
scanf("%d/%d",&a,&b);
m=a;
n=b;
while(b!=0) /*余数不为0,继续相除,直至余数为0*/
{
c=a%b;
a=b;
b=c;
}
printf("The largest common divisor:%d\n",a);
}
void subtract() /*相减法*/
{
int a,b;
printf("Input two integer numbers:(a/b)\n");
scanf("%d/%d",&a,&b);
m=a;
n=b;
while(a!=b) /*a,b不相等,大数减小数,直至相等*/
if(a>b)
a=a-b;
else b=b-a;
printf("The largest common divisor:%d\n",a);
}
void exhaustion() /*穷举法*/
{
int a,b,t;
printf("Input two integer numbers:(a/b)\n");
scanf ("%d/%d", &a, &b);
m=a;
n=b;
t=(a>b)?b:a; /*采用条件表达式求出两数中最小值*/
while(t>0) /*a,b同时被整除*/
{
if(a%t==0&&b%t==0)break;
t--;
}
printf("The largest common divisor:%d\n",t);
}
void menu() /*界面*/
{
int num;
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf("┃☆☆☆☆☆☆☆☆☆☆☆求最大公约数☆☆☆☆☆☆☆☆☆┃\n");
printf("┃—┅┅┅┅┅┅┅┅┅┅1.辗转相除法┅┅┅┅┅┅┅┅┅┃\n");
printf("┃—┅┅┅┅┅┅┅┅┅┅2.相减法┅┅┅┅┅┅┅┅┅┅┅┃\n");
printf("┃—┅┅┅┅┅┅┅┅┅┅3.穷举法┅┅┅┅┅┅┅┅┅┅┅┃\n");
printf("┃—┅┅┅┅┅┅┅┅┅┅0.返回到开始┅┅┅┅┅┅┅┅┅┃\n");
printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
printf("请选择菜单编号:\n");
scanf("%d",&num);
switch (num)
{
case 1:divide();break;
case 2:subtract();break;
case 3:exhaustion();break;
case 0:k=0;break;
default:printf("请在0-3之间选择\n");
}
}
C语言 用三种方法求最大公约数
最新推荐文章于 2022-06-22 18:12:53 发布