Hướng dẫn giải của Cộng có nhớ


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Tác giả: Hieu Nguyen

Bài tập này giới hạn chỉ là ~10^18~ nên chúng ta chỉ cần làm đúng theo cách chúng ta tính trên giấy là được.

Với C/C++, có thể dùng chuỗi để vẫn AC khi giới hạn vượt quá khả năng lưu của các kiểu dữ liệu số có sẵn.

Python code:

import sys
import random



a, b = map(int, input().split())

count = 0
prev = 0

while a > 0 or b > 0:
    if (a % 10 + b % 10 + prev) >= 10:
        prev = 1
        count += 1
    else:
        prev = 0
    a //= 10
    b //= 10

print(count)

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 1
    Names_  đã bình luận lúc 14, Tháng 10, 2023, 8:55

    Code c++

    include<bits/stdc++.h>

    using namespace std; long long cnt=0; string res; void cong(string a, string b) { while (a.size()<b.size()) a='0'+a; while(b.size()<a.size()) b='0'+b; long long i,carry=0; for (i=a.size()-1; i>=0; --i) { long long sum=(a[i]-'0')+(b[i]-'0') +carry; if (sum>=10) cnt++; carry=sum/10; res=(char) (sum%10+'0')+res; } if (carry) { res='1'+res; } } int main() { string a,b; cin>>a>>b; cong(a,b); cout<<cnt; }


  • -1
    bongocvidai  đã bình luận lúc 23, Tháng 9, 2023, 8:01

    import thu vien de lam j