C语言求最大公约数(辗转相除法介绍图解)+判断闰年

您所在的位置:网站首页 判断是否是闰年的条件是什么呢图片大全 C语言求最大公约数(辗转相除法介绍图解)+判断闰年

C语言求最大公约数(辗转相除法介绍图解)+判断闰年

#C语言求最大公约数(辗转相除法介绍图解)+判断闰年| 来源: 网络整理| 查看: 265

1.求最大公约数——暴力求解 最大公约数:即两个数据中公共约数的最大者。

如何求两个数的最大公约数呢?比如  24  18    18 和 6

思考:两个数的最大公约数,是不是最大就应该是,两个数之中的较小值,比如 24和18之中的18,或者18和6的最大公约数就是6;24和18之中的18作为较小者不是24的因数,那么就可以遍历18-1,找到的第一个24和18的公共因数是不是就是我们的最大公约数了。

26e4b0dc40bd46e1b947a31769bdde69.png

附上源码大家可以试一下:

int main() { int a = 0; int b = 0; scanf("%d %d", &a, &b); int min = (a > b ? b: a); while (1) { if (a % min == 0 && b % min == 0) { break; } else { min--; } } printf("%d是%d和%d的最大公约数\n", min, a, b); return 0; }

这种方法是最容易想到但是是最暴力的,接下来介绍第二种方法。 

2.求最大公约数——辗转相除法

辗转相除法之所以有效是因为其基于一个核心原理,即:

两个数的最大公约数等于其中较小的数字和二者之间余数的最大公约数

43fab03999884a2fa7562330a1ac527f.png

67f51adc1b26477f8ac0072e86566554.png

附上源码大家体验效果:

int main() { int a = 0; int b = 0; int k = 1; scanf("%d %d", &a, &b); while (k = a % b) { a = b; b = k; } printf("%d是最大公约数\n", b); return 0; }

3.判断闰年(两个条件满足)

闰年:4年一闰,100年不闰,400年闰

剥离出两个条件

1.闰年的年份数要能被4整除但是不能被100整除

2.能被400整除

9eeae0f53b1f4cea8d194e4a8ca93bb4.png

附上源码大家可以体验

int main() { int year = 0; scanf("%d", &year); if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { printf("%d是闰年\n", year); } else { printf("%d不是闰年\n", year); } return 0; }

 最近两篇题目是C语言开篇比较基础的题目大家可以试一下,欢迎指正。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3