Contest2659 - [c2]一三五晚上第七节课
2024-07-15 18:00:00
3333-07-15 22:00:00
信息与公告
#include<bits/stdc++.h> using namespace std; const int N = 1e5+11; long long a[N], b[N], c[N]; // 定义成long long string s, t; int main(){ cin>>s>>t; // 输入 int la=s.size(),lb=t.size(); // 记录长度 for(int i=0; i<la;i++) a[i]=s[la-1-i]-'0'; // s倒转存在a里 for(int i=0; i<lb;i++) b[i]=t[lb-1-i]-'0'; // t倒转存在b里 int lc=la+lb; // c的理论最大长度是 la+lb for(int i=0;i<la;i++){ // 枚举a的位数 for(int j=0;j<lb;j++){ // 枚举b的位数 // a[i]*b[j] 对应c的位置是 c[i+j] c[i+j]+=a[i]*b[j]; // 累加 c[i+j+1]+=c[i+j]/10; // 进位 c[i+j]%=10; // 取余 } } while(lc>0&&c[lc]==0) lc--; // 处理进位,直到遇见非0或者最后一个 // 3. 输出 for(int i=lc;i>=0;i--){ // 此时lc是最高位的下标 cout<<c[i]; } // // 可能多一位 // if(c[lc-1]==0) lc--; // // 3. 输出 // for(int i=lc;i>=0;i--){ // cout<<c[i]; // } return 0; }