黑马程序员技术交流社区
标题:
帮忙屡下思路,小学数学是偷学的
[打印本页]
作者:
李闯
时间:
2015-5-22 22:14
标题:
帮忙屡下思路,小学数学是偷学的
输入两个数,求最小公倍数和最大公约数
int main(int argc, const char * argv[])
{
int num1 = 0;
int num2 = 0;
int gcd = 0;
int lcm = 0;
printf("请输入两个数:\n");
scanf("%d%d", &num1, &num2);
int product = num1*num2;
if (num1 > num2) {
int temp = num1;
num1 = num2;
num2 = temp;
}
for (int i = num1; i > 0; i--) {
if (num1%i == 0 && num2%i == 0) {
gcd = i;
break;
}
}
lcm = product/gcd;
printf("gcd = %d\n", gcd);
printf("lcm = %d\n", lcm);
return 0;
}
作者:
小龙女的萝卜
时间:
2015-5-23 14:00
第一次评论,请多多指教。:)
int main(int argc, const char * argv[])
{
int num1 = 0;
int num2 = 0;
int gcd = 0; // 最大公约数
int lcm = 0; // 最小公倍数
printf("请输入两个数:\n");
scanf("%d,%d", &num1, &num2);
int product = num1*num2;
// 将两个数排序,num1小,num2大
if (num1 > num2)
{
int temp = num1;
num1 = num2;
num2 = temp;
}
/*
寻找最大公约数,(最大公约数、最大公因子,指两个或多个整数共有约数中最大的一个)
通过两个数中的最小数,for循环,依次找最大公约数,找到后跳出循环。
*/
for (int i = num1; i > 0; i--) //
{
if (num1%i == 0 && num2%i == 0) // nim1、num2同除以最小的num1,若整除,则为最大公约数;
gcd = i; // 将最大公约数赋值给gcd.
break; // 找打最大公约数,跳出循环
}
}
lcm = product/gcd; // 两个数的积除以这两个数的最大公约数,等于最小公倍数
// 按要求打印
printf("gcd = %d\n", gcd);
printf("lcm = %d\n", lcm);
return 0;
}
作者:
李闯
时间:
2015-5-24 11:11
小龙女的萝卜 发表于 2015-5-23 14:00
第一次评论,请多多指教。
int main(int argc, const char * argv[])
{
谢谢 ,很详细
作者:
x331275955
时间:
2015-5-24 17:51
公约数,公倍数什么都忘了,原来他俩还有倍数关系呢....受教了.
作者:
aSmallStone
时间:
2015-5-24 21:51
越基础的越容易忘记。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2