que_de_yu_fu @ 2024-10-27 16:02:42
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
using namespace std;
int l,l1,l2,i,j,a[2000],b[2000],c[2000];
string s1,s2;
int main()
{
cin>>s1>>s2;
l1=s1.length();
l2=s2.length();
for(i=0;i<l1;i++) {
a[l1-i]=s1[i]-48;
}
for(j=0;j<l2;i++) {
b[l2-j]=s2[j]-48;
}
for(i=0;i<l1;i++){
for(j=0;j<l2;j++){
c[i+j]+=a[i]*b[j];
}
}
int l=l1+l2;
for(i=0;i<l;i++){
c[i+1]+=c[i]/10;
c[i]%=10;
}
for(; !c[l];)
{
l--;
}
for(int i=l;i>=1;i--){
cout<<c[i];
}
return 0;
}
求调,没法输出数据,也不结束程序,不知道哪里卡死了
by lty2023 @ 2024-10-27 16:05:35
for(; !c[l];) { l--; } 应该是这段吧
by lty2023 @ 2024-10-27 16:07:26
#include<bits/stdc++.h>
using namespace std;
int a[5001],b[5001],c[10002];
int main(){
string a1,b1;
cin>>a1>>b1;
if(a1=="0"||b1=="0"){
cout<<0;
return 0;
}
reverse(a1.begin(),a1.end());
reverse(b1.begin(),b1.end());
for(int i=0;i<a1.size();i++){
a[i]=a1[i]-'0';
}
for(int i=0;i<b1.size();i++){
b[i]=b1[i]-'0';
}
for(int i=0;i<a1.size();i++){
for(int j=0;j<b1.size();j++){
c[i+j]+=a[i]*b[j];
if(c[i+j]>9){
c[i+j+1]+=c[i+j]/10;
c[i+j]%=10;
}
}
}
bool bo=0;
for(int i=10001;i>=0;i--){
if(c[i]!=0){
bo=1;
}
if(bo){
cout<<c[i];
}
}
}
@que_de_yu_fu
by sdjjdjdjdjd @ 2024-10-27 16:08:10
代码中有一段一下代码
for(j=0;j<l2;i++) {
b[l2-j]=s2[j]-48;
}
使用的为
by Eason1010 @ 2024-10-27 16:17:30
循环时循环变量为j,但递增的是i
for(j=0;j<l2;i++) {
b[l2-j]=s2[j]-48;
}
@que_de_yu_fu
by sdjjdjdjdjd @ 2024-10-27 16:20:52
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
using namespace std;
int l,l1,l2,i,j,a[3000],b[3000],c[3000];// 数组开太小可能会炸
string s1,s2;
int main()
{
cin>>s1>>s2;
l1=s1.length();
l2=s2.length();
for(i=0;i<l1;i++){
a[l1-i-1]=s1[i]-48;
}
for(j=0;j<l2;j++){
b[l2-j-1]=s2[j]-48;
}
for(i=0;i<l1;i++){
for(j=0;j<l2;j++){
c[i+j]+=a[i]*b[j];
}
}
int l=l1+l2;
for(i=0;i<l;i++){
c[i+1]+=c[i]/10;
c[i]%=10;
}
for(; !c[l];){
l--;
}
for(i=l;i>=0;i--){
cout<<c[i];
}
return 0;
}
by que_de_yu_fu @ 2024-10-27 16:26:41
@Eason1010 thank you