#include <bits/stdc++.h> using namespace std; const int LEN = 200; string A, B; int aLen, bLen, cLen; int a[LEN + 5], b[LEN + 5], c[LEN + LEN + 5]; int main() {

cin >> A >> B;

aLen = A.size();
bLen = B.size();
cLen = aLen + bLen - 1; 
for (int i = 0; i < aLen; i++)
    a[aLen - i - 1] = A[i] - '0';
for (int i = 0; i < bLen; i++)
    b[bLen - i - 1] = B[i] - '0';


for (int i = 0; i < aLen; i++)
    for (int j = 0; j < bLen; j++)
        c[i + j] += a[i] * b[j];

for (int i = 0; i < cLen - 1; i++)
{
    c[i + 1] += c[i] / 10;
    c[i] %= 10;
}

while (c[cLen - 1] >= 10)
{
    c[cLen] = c[cLen - 1] / 10;
    c[cLen - 1] %= 10;
    cLen++;
}

while (cLen > 1 && c[cLen - 1] == 0)
    cLen--;

for (int i = cLen - 1; i >= 0; i--)
    cout << c[i];
return 0;

}

6 条评论

  • @ 2024-8-9 16:03:52

    #include <bits/stdc++.h> using namespace std; string a,b; int x[2010],y[2010],z[4005]; int main(){ cin>>a>>b; int lena=a.size(),lenb=b.size(); for(int i=0;i<lena;i++) { x[lena-1-i]=a[i]-'0'; } for(int i=0;i<lenb;i++) { y[lenb-1-i]=b[i]-'0'; } int len=lena+lenb-1; for(int i=0;i<lena;i++) { for(int j=0;j<lenb;j++) { z[i+j]+=x[i]*y[j]; } } for(int i=0;i<len;i++) { z[i+1]+=z[i]/10; z[i]%=10; } while(z[len]==0&&len>0) { len--; } for(int i=len;i>=0;i--) { cout<<z[i]; } }

    • @ 2024-8-9 14:47:09
      #include <bits/stdc++.h>
      #define int long long
      using namespace std;
      string s1,s2;
      int a[114514],b[114514],c[114514];
      string WA(string s1,string s2)
      {
      	int l1 = s1.size();
      	int l2 = s2.size();
      	for (int i = 0;i < l1;i++)
      	{
      		a[l1 - 1 - i] = s1[i] - '0';
      	}
      	for (int i = 0;i < l2;i++)
      	{
      		b[l2 - i - 1] = s2[i] - '0';
      	}
      	for (int i = 0;i < l1;i++)
      	{
      		for (int j = 0;j < l2;j++)
      		{
      			c[i + j] += a[i] * b[j];
      			if (c[i + j] >= 10){
      				c[i + j + 1] += c[i + j] / 10;
      				c[i + j] %= 10;
      			}
      		}
      	}
      	int l = l1 + l2 - 1;
      	if (c[l] != 0){
      		l++;
      	}
      	string s = "";
      	for (int i = l - 1;i >= 0;i--)
      	{
      		s += c[i] + '0';
      	}
      	if (s1 == "0" || s2 == "0")
      	{
      		s = "0";
      	}
      	
      	return s;
      }
      signed main()
      {
      	cin >> s1 >> s2;
      	cout << WA(s1,s2);
      	
      	return 0;
      }
      
      • @ 2024-8-9 14:37:07

        讨论里发题解?

        • @ 2024-8-9 14:36:17

          • @ 2024-7-25 10:02:02

            6

            • @ 2024-7-24 11:31:07

              题解发讨论?

              • 1

              信息

              ID
              9712
              时间
              1000ms
              内存
              256MiB
              难度
              4
              标签
              (无)
              递交数
              121
              已通过
              59
              上传者