1.数学小常识:
两个数的乘积等于 这两个数的最大公约数和最下公倍数的乘积。
2 在C语言中求两个数的最大公约数
算法设计:● 定义变量
● 判断两个数的 main
● 用 mian 来表示最小值(事先定义好main)
● 列出循环函数和判断函数。
数学常识:一个数的最大约数必须小于本身,不能等于或大于。
也就是两个数的最大公约数不能是其中一个。
3.求最大公约数的小程序:
**#include <stdio.h>
int main()
{
int a,b;
int i;
int ret=0; int main;
scanf("%d %d",&a,&b);
if(a>b) main=b;
else main=a;
for(i=1;i<main;i++){
if(a%i==0){
if(b%i==0){
ret=i;
}
}
}
printf("%d和%d的最大公约数为%d",a,b,ret);
return 0;
}**
注意:这里引入变量 ret 然后把循环结束的变量结果赋给它,最后再输出。
★★★★## 引入变量 i 的原因:
●在循环内 i<main, 当整个循环结束时,i 往下走,不满足 i<mian
● 此时的 i 等于 main。
● 如果直接在循环结束后加 printf ,计算机会认为是循环结束时的 i
● 所以 引入变量 代替循环结束时变量的值,然后再输出。
特例:如果是引入 sum 求和函数 可以直接输出 sum
4小技巧.
在循环体中,
●如果你想要输出循环体中变量的最大值或最小值,
●可以把最后的变量赋值给另外一个第三方变量(事先定义好)
●然后再在循环体外输出那个第三方变量。
5 ,关于 break 跳出循环
●break 只是跳出循环 而与 if 等判断体系毫无关系
●即使一个循环里有很多的判断函数,也能直接跳出,明确记忆,不能混淆
6 . 如: 求最小公约数只需要在求最大公约数的基础上加上 break.
#include <stdio.h>
int main()
{
int a,b;
int i;
int main;
scanf("%d %d",&a,&b);
if(a>b) main=b;
else main=a;
for(i=1;i<=main;i++){
if(a%i==0){
if(b%i==0){
break;
}
}
}
printf("%d和%d的最大公约数为%d",a,b,i);
return 0;
}
7 .
辗转相除法
。。。