程序世界


私信TA

用户名:FGP

访问量:5696

签 名:

等  级
排  名 11182
经  验 1042
参赛次数 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 人评分

  评论区

参考代码:

#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
  • »