Editorial for Cộng có nhớ


Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.

Author: 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)

Comments

Please read the guidelines before commenting.



  • 1
    Names_  commented on Oct. 14, 2023, 8:55 a.m.

    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  commented on Sept. 23, 2023, 8:01 a.m.

    import thu vien de lam j