zoukankan      html  css  js  c++  java
  • 大数乘法

      很久没手写过大数运算了,以前也都是直接贴模板的,今晚的模拟笔试最后一道大数乘法就没调好,gg……

    #include <iostream>
    #include <string>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    
    string num1, num2;
    
    int result[2048] = {0};
    
    inline int chtoi(char ch) {
         return ch - '0' + 0;
    }
    
    #define  For(i,s,t)  for(int i = s; i < t; ++i)
    inline void cal() {
        int len1 = num1.size(), len2 = num2.size(), LL = len1 + len2;
        memset(result, 0, sizeof(result));
    
        int h1 = len1 >> 1, h2 = len2 >> 1;
    
        For(i, 0, h1)
            swap(num1[i], num1[len1 - 1 - i]);
        For(i, 0, h2)
            swap(num2[i], num2[len2 - 1 - i]);
    
        For(i, 0, len1)  For(j, 0, len2)
            result[i + j] += chtoi(num1[i]) * chtoi(num2[j]);
    
        For(i, 0, LL) {
            result[i + 1] += result[i] / 10;
            result[i] %= 10;
        }
        while(LL > 1 && result[LL - 1] == 0)    --LL;
        int half = LL >> 1;
        for(int i = 0; i < half; ++i)
            swap(result[i], result[LL - 1 - i]);
    
        for(int i = 0; i < LL; ++i)
            cout << result[i] ;
        cout << endl;
    }
    
    int main() {
        while(cin >> num1 >> num2) {
            cal();
        }
    }

      有很多细节笔试时都没处理好,后来才调好的,还是功力不够啊,不过不得不说笔试的时间还是挺赶的,选择题10多道半个小时感觉也不够用,下次得练得快一点才行了……编程题3道也不太会。。。

  • 相关阅读:
    java-多态
    java-继承
    java-访问修饰符
    mysql基础入门
    子查询
    多表查询
    mysql表(多对多)
    myslql主外键约束
    Sql语句分类
    Redis的一些介绍
  • 原文地址:https://www.cnblogs.com/Newdawn/p/5321495.html
Copyright © 2011-2022 走看看