Contest2659 - [c2]一三五晚上第七节课

2024-07-15 18:00:00
3333-07-15 22:00:00
运行中 公开 当前时间:2024-09-20 08:46:30

信息与公告

#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;
}