Em có đọc trên mạng đoạn code như sau mà mong mọi người giải đáp. Đề là nhân 2 số nguyên lớn.
#include <bits/stdc++.h>
using namespace std;
string s,ss,str="";
int a[1000],i,j;
int main()
{
cin>>s>>ss;
for(i=0;i<=s.size()+ss.size();i++)
a[i]=0;
for(i=s.size()-1;i>=0;i--)
{
for(j=ss.size()-1;j>=0;j--)
a[i+j+1]+= (s[i]-'0')+(ss[j]-'0');
}
for(i=s.size()+ss.size();i>=0;i--)
{
if(a[i]>9)
{
a[i-1]+=a[i]/10;
a[i]%=10;
}
}
for(i=0;i<s.size()+ss.size();i++)
str+=(a[i]+'0');
cout<<str;
}
Em không hiểu (s[i]-'0')+(ss[j]-'0'); (a[i]+'0'); là gì ạ. s[i] ss[j], a[i] là các phần từ trong mảng mà sao lại -'0' ?
Và code này chưa có loại bỏ số 0 đầu mảng. Mong mọi người giúp ạ. Em mới học.
) nên phải trừ cho ‘0’ để tính toán.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?