C++刷面试题(最大公约数)【数学|越界处理】【网易】【2020】
本帖最后由 糖逗 于 2020-5-23 16:02 编辑题目描述:如图1
题目来自:牛客网
#include <iostream>
#include <string>
using namespace std;
long long gcd(long long a, long long b) {//辗转相除
if (b == 0) return a;
return gcd(b, a%b);
}
int main() {
string s;
getline(cin,s);
long long a = 0, b;
cin >> b;
for (int i = 0; s != '\0'; i++) {
a = (a * 10 + s - '0') % b;
}//先用最大值除以最小值得到一个较小的数防止数据溢出
cout << gcd(a, b);
return 0;
}
页:
[1]