MilkyCoffee @ 2020-05-29 18:38:20
大家好我又又双双叒叒叕叕是那个牛奶小咖啡,我又来求助啦!
我的开场白依旧:虽然我代码里加了注释,但是依然可读性极差~
不多BB,A*B高精上代码!
真想用PY啊嘤嘤嘤
// #include <bits/stdc++.h>
#include <queue>
#include <stack>
#include <cmath>
#include <string>
#include <cstdio>
#include <iomanip>
#include <cstring>
#include <iostream>
#include <algorithm> // 个人习惯
using namespace std;
string a, b;
string tim(string a, string b) { // 封装函数
string c;
int l1 = a.length(); // 求a长度
int l2 = b.length(); // 求b长度
int tmp = 0; // 每一位=0
int jinwei = 0; // 进位=0
for (int i = l1 - 1; i >= 0; i--) { // 遍历a
for (int j = l2 - 1; j >= 0; j--){ // 遍历b
tmp = (a[i] - '0') * (b[j] - '0') + jinwei; // 求每一个结果
jinwei = tmp / 10; // 更新进位
tmp = tmp % 10; // 把tmp%10再加进c里
c = char(tmp + '0') + c;
}
}
if (jinwei != 0) c = char(jinwei + '0') + c; // 处理多余进位
return c;
}
int main(){
cin >> a >> b;
cout << tim(a, b) << endl;
return 0;
}
本地运行没有错啊
1*2=2
2*3=6
3*7=21
随便试了几组数据发现没错啊
但是当你输入100*100
它会输出100000000
求助啊啊啊
by 过往梦魇之殇 @ 2020-05-29 18:40:27
我来帮忙:建议fft
by tangrunxi @ 2020-05-29 18:40:28
想用py就用啊
by 过往梦魇之殇 @ 2020-05-29 18:41:31
正解
by MilkyCoffee @ 2020-05-29 18:44:37
aaa
by MilkyCoffee @ 2020-05-29 18:44:45
好的谢谢@!!!
by 虐lxl王子 @ 2020-05-29 18:49:17
@牛奶小咖啡 您能帮我,我就能帮您
by Mine_King @ 2020-05-29 18:52:38
虽然不是很能看懂您的代码,但您用tmp和jinwei好像会出奇奇怪怪的问题,不明白为什么可以用单个变量做
by UltiMadow @ 2020-05-29 18:58:39
建议fft,好写还不容易写错(
by LucasXu80 @ 2020-05-29 19:16:01
@牛奶小咖啡 恕我直言,其实明天课上就讲了。。。
by qsceszthn @ 2020-05-29 20:59:16
题解一大堆 求助啥呢..