C语言最大公约数三种算法
来源:互联网 发布:剑三成男恐怖脸型数据 编辑:程序博客网 时间:2024/05/29 13:36
//********************求最大公约数***************************
//作者 郭泽敏
//版本:v1.0
//创建时间:2017年3月19日
//主要功能:能够使用三个不同的算法算出输入两个正整数最大公约数
//
//************************************************************
#include <stdio.h>
void qjf()
{//穷举法
printf("请输入两个数字:\n");
int a,b;
scanf("%d%d",&a,&b);
int n=a;
if(n>b)
n=b;//两个数中小的数
for(int i=n;i>=1;i--)
{
if(a%i==0&&b%i==0)//a除以i与b除以i的余数都为零时,跳出循环。
{
printf("最大公约数: %d\n",i);
}
}
void xjf()
{//相减法
int a,b;
printf("请输入两个整数 :");
scanf("%d%d",&a,&b);
while(a!=b)//a不等b
if(a>b)
{
a=a-b;
}
else
{
b=b-a;
}
printf("最大公约数:%d\n",a);
}
void gcd()
{//辗转相除法
int a,b,c;
printf("输入两个整数:");
scanf("%d %d",&a,&b);
if(a<b)
{
c=a;
a=b;
b=c;
}
while(b!=0)
{
c=a;
a=b;
b=c%b;
}
printf("最大公约数%d\n",a);
}
int main()//主函数
{
int choose;//算法选择
printf(" ----最大公约数------\n");
printf(" 1.穷举法 \n");
printf(" 2.相减法 \n");
printf(" 3.辗转相除法 \n");
printf(" 4.退出本菜单 \n");
printf(" --------------------\n");
while(1)
{
printf(" \n请输入算法编号:");
scanf("%d",&choose);
switch(choose)
{
case 1:
qjf();break;
case 2:
xjf();break;
case 3:
gcd();break;
case 4: return;
default: printf("\n请在1-4之间选择");
}
}
//作者 郭泽敏
//版本:v1.0
//创建时间:2017年3月19日
//主要功能:能够使用三个不同的算法算出输入两个正整数最大公约数
//
//************************************************************
#include <stdio.h>
void qjf()
{//穷举法
printf("请输入两个数字:\n");
int a,b;
scanf("%d%d",&a,&b);
int n=a;
if(n>b)
n=b;//两个数中小的数
for(int i=n;i>=1;i--)
{
if(a%i==0&&b%i==0)//a除以i与b除以i的余数都为零时,跳出循环。
{
printf("最大公约数: %d\n",i);
break;
}}
}
void xjf()
{//相减法
int a,b;
printf("请输入两个整数 :");
scanf("%d%d",&a,&b);
while(a!=b)//a不等b
if(a>b)
{
a=a-b;
}
else
{
b=b-a;
}
printf("最大公约数:%d\n",a);
}
void gcd()
{//辗转相除法
int a,b,c;
printf("输入两个整数:");
scanf("%d %d",&a,&b);
if(a<b)
{
c=a;
a=b;
b=c;
}
while(b!=0)
{
c=a;
a=b;
b=c%b;
}
printf("最大公约数%d\n",a);
}
int main()//主函数
{
int choose;//算法选择
printf(" ----最大公约数------\n");
printf(" 1.穷举法 \n");
printf(" 2.相减法 \n");
printf(" 3.辗转相除法 \n");
printf(" 4.退出本菜单 \n");
printf(" --------------------\n");
while(1)
{
printf(" \n请输入算法编号:");
scanf("%d",&choose);
switch(choose)
{
case 1:
qjf();break;
case 2:
xjf();break;
case 3:
gcd();break;
case 4: return;
default: printf("\n请在1-4之间选择");
}
}
}
总结:
这次作业我感觉比上一次作业自己的完成度要好的多,经过前一次的作业,我也看到了我自己在不断地进步,自己在写程序的时候也会记得加一些对于这个算法的注释。虽然这一次的程序,可能功能,不是那么的完善,还是有很多考虑不到的点。比如说,在使用穷举法时,输入两个小数就会进入无限循环出不来,这个自己确实改不出来。总得来说比上一次的作业好多了。
0 0
- c语言求最大公约数三种算法
- C语言最大公约数三种算法
- 三种算法求最大公约数c语言
- C语言求最小公倍数和最大公约数三种算法
- C语言求最小公倍数和最大公约数三种算法
- C语言求最小公倍数和最大公约数三种算法
- C语言求最小公倍数和最大公约数三种算法
- C语言求最小公倍数和最大公约数三种算法
- C语言求最小公倍数和最大公约数三种算法
- C语言三种算法求解最大公约数与最小公倍数
- C语言中求最大公约数的算法(三种)
- 常见算法:C语言求最小公倍数和最大公约数三种算法
- 常见算法:C语言求最小公倍数和最大公约数三种算法
- 常见算法:C语言求最小公倍数和最大公约数三种算法
- 常见算法:C语言求最小公倍数和最大公约数三种算法
- 常见算法:C语言求最小公倍数和最大公约数三种算法
- 常见算法:C语言求最小公倍数和最大公约数三种算法
- 常见算法:C语言求最小公倍数和最大公约数三种算法
- EventBus3官方文档翻译(二)
- 合并单向有序列表
- JavaMail
- 简单谈谈实现递归暴力枚举
- javascript中间凸显滚动圆圈特效demo
- C语言最大公约数三种算法
- Idea Windows下光标返回上一个位置的设置
- 将要远行
- 滤镜效果的ImageView
- 数据库连接池的理解和使用
- 如何让孩子爱上设计模式 ——22.责任链模式(Chain of Responsibility Pattern)
- 日志之总结篇3--外部中断相关分析
- 安卓开发——MaterialDesign实战
- What is Deep learning?