在下贰蓉


私信TA

用户名:zjr030602

访问量:3081

签 名:

自然选择,前进四!

等  级
排  名 8444
经  验 1171
参赛次数 0
文章发表 4
年  龄 19
在职情况 学生
学  校
专  业

  自我简介:

解题思路:


最大公约数的for循环从m n中最小的开始,逐渐减到1,第一个符合条件的就是最大的;最小公倍数的for循环从1开始,逐渐增加到m*n,第一个符合条件的就是最小的。一旦符合条件,就用break跳出循环即可。




参考代码:

#include
<stdio.h>
void zuidagongyueshu(int m, int n);
void zuixiaogongbeishu(int m, int n);
int main(){
    int n,m,i,min,j;
    scanf("%d%d",&n,&m);
     
    zuidagongyueshu(m,n);
    printf(" ");
    zuixiaogongbeishu(m,n);
     
    return 0;
}
 
//最大公约数
void zuidagongyueshu(int m, int n){
    int min,i;
    if(m>n){
        min = n;
    }else{
        min = m;
    }
    for(i=min;i>=1;i--){
        if(m%i==0 && n%i==0){
            printf("%d",i);
            break;
        }
    }        
}
 
//最小公倍数
void zuixiaogongbeishu(int m, int n){
    int j;
    for(j=1;j<=m*n;j++){
        if(j%m==0 && j%n==0){
            printf("%d",j);
            break;
        }
    }
}


 

0.0分

2 人评分

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

编程语言转换

万能编程问答

代码解释器

  评论区