【发布时间】:2015-03-10 20:14:51
【问题描述】:
我是 C++ 新手,我正在尝试创建一个函数来实现欧几里得算法,该算法返回两个整数输入的最大公约数。
我目前采用的方法总是崩溃 - 你能帮我理解为什么吗?
int main() {
int a = 0;
int b = 0;
cin >> a;
cin >> b;
do {
if ( a > b ) a = a % b;
else if ( a < b ) b = b % a;
else if ( a == b ) break;
} while ( ( a || b ) != 0 );
return 0;
}
谢谢,
大卫
【问题讨论】:
标签: c++ algorithm do-while modulus