求两个数的最大公约数
来源:互联网 发布:java课程设计题目 编辑:程序博客网 时间:2024/06/11 02:35
从键盘输入两个整数,输出两个整数的最大公约数。用C或C++语言实现程序解决问题。
1.程序风格良好(使用自定义注释模板)
2.使用三种算法解决问题
3.提供友好的输入输出,并进行输入数据的正确性验证。
代码如下:
#include <stdio.h>#include <stdlib.h>void meau(); //菜单void divied(); //辗转相除法求最大公约数void minus(); //辗转相减法求最大公约数void Gcd(); //穷举法求最大公约数int k=1;int main(){ while(k) { meau(); } return 0; system("pause");}/* * * * * * * *辗转相除法求最大公约数* * * * * * */void divied(){ while(1) { int x=0; int y=0; int temp=0; printf("请输入x,y:(使用空格键分开)\n"); scanf("%d%d", &x, &y); while(x<=0||y<=0) { printf("请输入正确的数据!"); scanf("%d%d",&x,&y); } if(y > x) { temp = x; x = y; y = temp; } while(x % y) { temp = y; y = x % y; x = temp; } printf("最大公约数为%d \n\n", y); } return 0;}/* * * * * * * *辗转相减法求最大公约数* * * * * * */void minus(){ while(1) { int x = 0; int y = 0; printf("请输入x,y:\n"); scanf("%d %d",&x,&y); while(x<=0||y<=0) { printf("请输入正确的数据!"); scanf("%d%d",&x,&y); } while(1) { if(x>y) { x = x-y;//将两个数的差值赋给最大的一个 } else if(x<y) { y = y-x; } else { printf("最大公约数为%d \n\n", y); break;//跳出整个循环 } } } return 0; } /* * * * * * * *穷举法求最大公约数* * * * * * */void Gcd(){ while(1){ int x = 0; int y = 0; int i = 1; printf("请输入x,y:(使用空格键分开)\n"); scanf("%d%d", &x, &y); while(x<=0||y<=0) { printf("请输入正确的数据!"); scanf("%d%d",&x,&y); } if(x<y) //确保m一定要大于n { x=x+y; y=x-y; x=x-y; } for(i=y;i>0;i--) //最大公约数从大到小找到最大 { if(x%i == 0 && y%i==0) break; } printf("最大公约数是%d\n",i); } return 0;} /* * * * * * * 菜单* * * * * * */void meau(){ int num; printf(" \n\n \n\n"); printf("********************************************************\n\n"); printf("* 求两个数的最大公约数 *\n \n"); printf("********************************************************\n\n"); printf("********************* 系统功能菜单************************* \n"); printf(" * 1.使用辗转相除法求最大公约数 * * \n"); printf(" * 2.使用辗转相减法求最大公约数 * * \n"); printf(" * 3.使用穷举法求最大公约数 * * \n"); printf(" * 4. * * * * * 退出 * * * * * * * \n"); printf(" ---------------------- ---------------------- \n"); printf("请选择菜单编号:"); scanf("%d",&num); switch(num) { case 1:divied();break; case 2:minus();break; case 3:Gcd();break; case 4: return; default:printf("请在1-4之间选择\n"); }}
阅读全文
0 0
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 求两个数的最大公约数
- 每天学一点Swift----面向对象下(六)
- Gradle基础知识
- BZOJ1509 简单 树形DP
- 蛮力法——狱吏问题
- MySQL(三)
- 求两个数的最大公约数
- JZ2440 NAND Flash控制器
- com.sun.jersey.api.container.ContainerException: The ResourceConfig instance
- window下配置nginx 及虚拟主机
- HIVE的安装配置、mysql的安装、hive创建表、创建分区、修改表等内容、hive beeline使用、HIVE的四种数据导入方式、使用Java代码执行hive的sql命令
- 机器学习:从二项logistic distribution 到 softmax loss function
- 如何解决错误0×80071AC3
- 请这样爱你的移动硬盘
- 笔记本电池的那些事儿