Chào cả nhà! Mọi người cho em hỏi cách hoạt động của đoạn code này được không ạ em không hiểu lắm về dùng auto và z:b . Em cảm ơn cả nhà.
void solve()
{
long long btmp=0;
for(auto z:b)btmp=(btmp*10+z-'0')%a;
cout<<__gcd(btmp,a)<<'\n';
}
Chào cả nhà! Mọi người cho em hỏi cách hoạt động của đoạn code này được không ạ em không hiểu lắm về dùng auto và z:b . Em cảm ơn cả nhà.
void solve()
{
long long btmp=0;
for(auto z:b)btmp=(btmp*10+z-'0')%a;
cout<<__gcd(btmp,a)<<'\n';
}
b kiểu string phải không?
for(auto z:b) là lặp qua mỗi kí tự (gán vào z) trong chuỗi b. Từ khóa auto có nghĩa là tự động nhận dạng kiểu dữ liệu cho z. Trong trường hợp này, nó tương đương với kiểu char:
for(char z:b).

Em cảm ơn. Cho em hỏi chút là z chạy từ kí tự đầu tiên hay cuối cùng ạ ? Với lại code trên dự trên cách tìm UCLN nào vậy ?
gcd(a, b) = gcd(a % b, b)
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?