程序世界


私信TA

用户名:FGP

访问量:5263

签 名:

等  级
排  名 10950
经  验 997
参赛次数 0
文章发表 7
年  龄 0
在职情况 学生
学  校 成都工业学院
专  业

  自我简介:

解题思路:
这个题求最大公约数根据欧几里得算法中的辗转相除法可以以很快的速度运行成功,然后利用a*b/最大公约数就是最小公倍数

利用函数的嵌套可以使得代码量迅速减少。




注意事项:


辗转相除法使用递归记得递归结束的条件。


参考代码:

#include<stdio.h>

int biggestDivi(int a, int b)

{

return a%b == 0?b:biggestDivi(b,a%b);

}

int smallestMul(int a, int b)

{

return a/b;

}

int main()

{

   int a,b;

   scanf("%d%d",&a,&b);

   printf("%d %d",biggestDivi(a,b),smallestMul(a*b,biggestDivi(a,b)));

return 0;

}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答

代码解释器

  评论区

参考代码:

#include "stdio.h"

int main(int argc, char* argv[])

{

int a[100][2],b[10000],L,M,i,j,k,h,s=0;

while(1)

{

scanf("%d %d",&L,&M);

if(1<=L&&L<=10000&&1<=M&&M<=100)

{

break;

}

}

for(j=0;j<=L;j++)

{

b[j]=1;

}

for(i=0;i<M;i++)

{

scanf("%d %d",&a[i][0],&a[i][1]);

for(h=a[i][0];h<=a[i][1];h++)

{

b[h]=0;

}

}

for(k=0;k<=L;k++)

{

if(b[k]==1)s++;

}

printf("%d\n",s);

return 0;

}
2020-06-04 12:15:19
666
2017-09-29 16:40:03
  • «
  • 1
  • »