更相减损术

更相减损术

https://ac.nowcoder.com/acm/problem/22164

其实用纸举例写一遍就出来了:
将两个运算数的位置定下来:大的放在前面;
得到的差是下一个的因数。(先不管这些知道能用上就行)
开始推
n1 = 5; n2 = 7;
change...
n1 = 7; n2 = 5;
7 - 5 = 2

n1 = 2; n2 = 5
change...
n1 = 5; n2 = 2;
5 - 2 = 3;

n1 = 3; n2 = 2;
change...
3 - 2 = 1

n1 = 1; n2 = 2;
change...
n1 = 2; n2 = 1;
2 - 1 = 1;

n1 = 1; n2 = 1;
1 - 1 = 0;

#include<cstdio>
void change(int &n1, int &n2);
int main(){
    int n1, n2;
    scanf("%d %d", &n1, &n2);
    while(n1 != 0){
        change(n1, n2);
        n1 = n1 - n2;
    }
    printf("%d", n2);
    return 0;
}
void change(int &n1, int &n2){
    if(n2 > n1){
        int temp = n2;
        n2 = n1;
        n1 = temp;
    }
}
全部评论

相关推荐

昨天 20:41
已编辑
北京交通大学 算法工程师
字节跳动 训练框架研发 (N+2) * (12 + 3) 硕士211
点赞 评论 收藏
分享
12-18 18:50
已编辑
门头沟学院 golang
牛客33637108...:重点是要事已密成,在没有进入这家公司之前,不要有任何的泄露信息,我之前跟你一样,面了一家光伏设备厂,底薪7500加上出差补贴大概有13,000左右,已经给了口头offer了,甚至要了我的在校成绩的所有信息,还向我要了三方的网签二维码,到后面还是毁约了,我干过最愚蠢的事情就是向同学透露要签三方的事,之后的失败只会让他们幸灾乐祸,这是即将结束的大学生活给我的最后一课,不要相信任何的口头三方,该面的就去面,甚至签了三方也有毁约的可能,就像我现在签了三方还在外面实习呢,春招还是要继续参加的,不能停止面试,不然到后面毁三方的时候,重新捡起的面试很麻烦的,这是我一点点小小的见解。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务