思路就是先定义两个函数,一个解决最大公约数,一个最小公倍数,定义整形变量a,b用来接收两个输入整数。
最大公约数,定义一个整数i,用语句使a,b最小值赋值给i,for语句初值为a,b中最小数,i--,循环到a和b可以同时整除i, i就是a和b的最大公约数,用break函数结束循环。
最小公倍数,定义一个整数i,用语句使a,b最大值赋值给i,for语句初值为a,b中最大数,i++,循环到i可以同时整除a和b,i就是a和b的最小公倍数,用break函数结束循环。
#includeint gys(int a,int b); //声明gys函数解决最大公约数的函数 int gbs(int a,int b); //声明gbs函数解决最小公倍数的函数 void main() { int i,j; //定义两个整形变量来接收两个整数 printf("请输入两个整数:"); scanf("%d%d",&i,&j); //输入两个整数 printf("最大公约数为:%dn",gys(i,j)); //使用gys函数输出最大公约数 printf("最小公倍数为:%dn",gbs(i,j)); //使用gbs函数输出最小公倍数 } int gys(int a,int b) //定义gys函数 { int i; i=(a>b?b:a); //判断a是否小于b,小于的话互换值,使b为最小数 for(i;i>0;i--) //由于使用的是i--,可以找到最先被a和b整除的数 if(a%i==0&&b%i==0) //用if语句判断i减到几可以a和b整除 { return i; //函数返回值给到i,因为i最先被a和b整除,说明i为最大公约数 break; //因为已经找到答案,直接结束循环,用break语句 } } //了解了最大公约数怎么求,那么最小公倍数就更好算了 int gbs(int a,int b) //定义gbs函数 { int i; //首先定义一个整形变量,用来接替a和b中的最大值 i=(a0;i++) //使i初值为a,b中最大数,i++ if(i%a==0&&i%b==0) //直到i可以同时整除a和b { return i; //把i的值返回给gbs函数 break; //已经找到答案,可提前结束循环 } } //over
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)