sicily 1381. a*b

原创 2015年11月18日 20:07:30

1381. a*b

Constraints

Time Limit: 1 secs, Memory Limit: 32 MB

Description

Give two positive integers a and b, please help us calculate a*b.

Input

The first line of the input is a positive integer T. T is the number of test cases followed.

Each test case contain two integer a,b (0<=a<=10^100, 0<=b<=10,000) given in one line.

Output

The output of each test case should consist of one line, contain the result of a*b.

Sample Input

12 7

Sample Output

14

题目分析

理同1201
先反转字符串,
思考如何变成字符串与个位数的乘法
注意前缀零和结果为零


#include <iostream>
#include <memory.h>

int ans[106];

std::string reverse(std::string s) {
  std::string sss = "";
  for (int i = s.length()-1; i >= 0; --i)
    sss += s[i];
  return sss;
}

void add(std::string s, int times) {
  for (int i = 0; i < s.length(); ++i) {
    ans[i] += (s[i]-'0') * times;
    if (ans[i] > 9) {
      ans[i+1] += ans[i] / 10;
      ans[i] %= 10;
    }
  }
}

int main()
{
  int num;
  std::cin >> num;
  while (num--) {
    memset(ans, 0, sizeof(ans));
    std::string s;
    int times;
    std::cin >> s >> times;
    s = reverse(s);
    while (times != 0) {
      int temp = times % 10;
      add(s, temp);
      s = "0" + s;
      times = (times - temp) / 10;
    }
    bool pre = true;
    for (int i = 105; i >= 0; --i) {
      if (pre && ans[i] == 0)
        continue;
      pre = false;
      std::cout << ans[i];
    }
    if (pre) std::cout << "0";
    std::cout << std::endl;
  }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

sicily 1381. a*b

1381. a*b Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description Give two positive i...

Sicily 1381. a*b【高精度乘法】

题目链接在此

Sicily 1381 a*b

高精度。 #include #include void sum( char *s1, char *s2, char *data ) { int arr[1000]; int i,...

sicily 1381(高精度)

#include "iostream" #include "string" #include "string.h" #include "sstream" using namespace std...
  • yzl_rex
  • yzl_rex
  • 2011年11月01日 08:26
  • 466

1381 a*b 高精度

#include #include #include using namespace std; string add(string add1,string add2) { int a=ad...

1381. a*b

1381. a*b Total: 4745 Accepted: 1275 Rating: 2.7/5.0(26 votes) ...

1381. a*b 大数相乘

1381. a*b Description Give two positive integers a and b, please help us calculate a*b. Input The...

Sicily 1428. B Baby Climber(心宝去爬山)

1428. B Baby Climber(心宝去爬山) Constraints Time Limit: 1 secs, Memory Limit: 32 MB Descripti...

Sicily 1025. Parallel Challenge B

1025. Parallel Challenge B Constraints Time Limit: 1 secs, Memory Limit: 32 MB Descriptio...

HDOJ 1381 Crazy Search

Crazy Search Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:sicily 1381. a*b
举报原因:
原因补充:

(最多只允许输入30个字)