51nod 大数乘法

    xiaoxiao2026-01-07  8

    数组模拟一遍,后面再自己写个大数模板吧。

    被某个女生刺激到了,默默关注一下,继续自己所坚持的路。

    #include<iostream> #include<cmath> #include<cstring> #include<cstdlib> #include<algorithm> #include<cctype> #include<cmath> #include<ctime> #include<string> #include<stack> #include<deque> #include<queue> #include<list> #include<set> #include<map> #include<cstdio> #include<limits.h> #define MOD 1000000007 #define fir first #define sec second #define fin freopen("/home/ostreambaba/文档/input.txt", "r", stdin) #define fout freopen("/home/ostreambaba/文档/output.txt", "w", stdout) #define mes(x, m) memset(x, m, sizeof(x)) #define Pii pair<int, int> #define Pll pair<ll, ll> #define INF 1e9+7 #define Pi 4.0*atan(1.0) #define lowbit(x) (x&-x) #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 typedef long long ll; typedef unsigned long long ull; const double eps = 1e-7; const int MAX = 101; using namespace std; #define time int main() { string str1, str2; cin >> str1 >> str2; int len1 = str1.size(); int len2 = str2.size(); int num1[1001]; int num2[1001]; int c[2001]; mes(num1, 0); mes(num2, 0); mes(c, 0); for(int i = len1 - 1, j = 0; i >= 0; --i, ++j){ //转换 num1[j] = str1[i] - '0'; } for(int i = len2 - 1, j = 0; i >= 0; --i, ++j){ num2[j] = str2[i] - '0'; } for(int i = 0; i < len1; ++i){ //数组模拟乘法,c数组用来存数 for(int j = 0; j < len2; ++j){ c[i+j] += num1[i]*num2[j]; c[i+j+1] += c[i+j]/10; c[i+j] = c[i+j]%10; } } int k = 2000; while(!c[--k]); for(; k >= 0; --k){ cout << c[k]; } cout << endl; return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-1305741.html
    最新回复(0)