Day 18, 巧妙的最大公因数C++设计

今天,我尝试自己设计最大公因数程式码,打得落落长一大堆if, else,不亦乐乎,结果测试结果失败,所幸对了50%的测试(这哪好?,我卡在若输入二数值是质数与质数相乘的情况(7x13 VS 7x17),答案会是错的gcd = 1,这是因为,我只有设定2, 3, 5数值,其他就没有设定,且我不知道除了暴力解还能怎么办,所以我上网找答案,结果找到了一个令我为之震撼的超简洁程式码:
网址:https://takamai.pixnet.net/blog/post/34642223

#include<iostream> using namespace std; int gcd(int, int); int main() {     int m = 0;    int n = 0;     cout << "输入两数:";     cin >> m >> n;     cout << "GCD: "          << gcd(m, n) << endl;     return 0; } int gcd(int m, int n) {     int r = 0;     while(n != 0) {         r = m % n;         m = n;         n = r;     }     return m; }

看看这个半毛if else都没有的简洁美丽程式,看看这巧妙的求余数并替换变数的方法,开拓新知识了。重点是,这程式还过了测试!我到现在还是难理解这怎么做到的,回去消化ing。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章