Discuz! Board

 找回密码
 立即注册
查看: 319|回复: 4

2023.5.12错误作业

[复制链接]

20

主题

33

帖子

3458

积分

论坛元老

Rank: 8Rank: 8

积分
3458

小火马 Lv:11
发表于 2023-5-12 21:06:18 | 显示全部楼层 |阅读模式
#include<bits/stdc++.h>
using namespace std;
int max,min;
int zx(int n,i)
{
        max=n>i?n:i;
        min=n<i?n:i;
        if(max%min==0)
        {
                return n*i/min;
        }
        else
        {
                return zx(min,max%min);
        }
}
int main()
{
        cin>>max>>min;
        cout<<zx<<endl;
        return 0;
}

请老师帮忙看一下哪错了
回复

使用道具 举报

574

主题

758

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435189

烈空座 Lv:100
发表于 2023-5-14 18:02:40 | 显示全部楼层
[C] 纯文本查看 复制代码
#include<bits/stdc++.h>
using namespace std;

int gys2(int a,int b)//递归求最大公约数
{
        int r=a%b;//求余数
        if(r==0) //若余数等于0,则除数即为其最大公约数
        {
                return b;//返回除数
        }
        gys2(b,a%b);//若余数不为0,则以除数为被除数,余数为除数继续计算。
}

int main()
{
        int a,b;
        cin>>a>>b;
    int t=gys2(a,b);//最大公约数
        cout<<a/t*b;//最小公倍数=(a/(ab的最大公约数))*b
    return 0;
}
回复

使用道具 举报

574

主题

758

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435189

烈空座 Lv:100
发表于 2023-5-14 18:11:38 | 显示全部楼层
[C] 纯文本查看 复制代码
#include<bits/stdc++.h>
using namespace std;
int max,min;
int zx(int n,i)
{
        max=n>i?n:i;//这句使用了三元运算符 ?:表示?前面的条件成立时,将n赋值给max 
        min=n<i?n:i;//在这里使用,目的似乎是分出n和i的大小,其实没有必要这么做,大小次序不影响辗转相除的过程。 
        if(max%min==0)//余数为0时,中断递归,没错 
        {
                return n*i/min;//返回的值应该是除数,辗转相除时若余数为0,此时除数即为最大公约数,而且这里使用的n和i已经不是你最初输入的n和i了 
        }
        else
        {
                return zx(min,max%min);
        }
}
int main()
{
        cin>>max>>min;
        cout<<zx<<endl;//这里增加一步,使用最大公约数求最小公倍数 
        return 0;
}
回复

使用道具 举报

574

主题

758

帖子

243万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2435189

烈空座 Lv:100
发表于 2023-5-14 18:12:55 | 显示全部楼层
附上辗转相除法的使用方法

假如需要求 1997 和 615 两个正整数的最大公约数,用欧几里得算法,是这样进行的:
1997 ÷ 615 = 3 (余 152)
615 ÷ 152 = 4(余7)
152 ÷ 7 = 21(余5)
7 ÷ 5 = 1 (余2)
5 ÷ 2 = 2 (余1)
2 ÷ 1 = 2 (余0)
至此,最大公约数为1
回复

使用道具 举报

20

主题

33

帖子

3458

积分

论坛元老

Rank: 8Rank: 8

积分
3458

小火马 Lv:11
 楼主| 发表于 2023-5-14 19:35:43 | 显示全部楼层
admin 发表于 2023-5-14 18:02
[mw_shl_code=c,true]#include
using namespace std;

老师,c++运行出来这个程序是错的,作业网上提交也是错的,不知道为什么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-2-13 01:52 , Processed in 0.054233 second(s), 32 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.. 技术支持 by 巅峰设计

快速回复 返回顶部 返回列表