Pat_1086(乙级) | StriveZs的博客

Pat_1086(乙级)

1086 就不告诉你 (15 分) 原文地址

做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。 53.jpg

输入格式:

输入在第一行给出两个不超过 1000 的正整数 A 和 B,其间以空格分隔。

输出格式:

在一行中倒着输出 A 和 B 的乘积。

输入样例:

5 7

输出样例:

53

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include<iostream>
#include<string.h>
#include<algorithm>

using namespace std;

string BigNumberMult(){
string s1,s2,s(10000,'0');
cin>>s1>>s2;
reverse(s1.begin(),s1.end());
reverse(s2.begin(),s2.end());
for(int i=0;i<s1.length();i++){
for(int j=0;j<s2.length();j++){
int temp = (s1\[i\] - '0') * (s2\[j\] - '0');
s\[i+j+1\] = s\[i+j+1\] - '0' + (s\[i+j\] - '0' + temp) / 10 + '0';
s\[i+j\] = (s\[i+j\] - '0' + temp) % 10 + '0';
}
}
reverse(s.begin(),s.end());
if(s.find\_first\_not_of('0') == string::npos){
return "0";
}
else{
return s.substr(s.find\_first\_not_of('0'));
}
}

int main(){
string result;
result = BigNumberMult();
reverse(result.begin(),result.end());
cout<<result.substr(result.find\_first\_not_of('0'))<<endl; //对于 10 * 10 得到的100 要将001处理为1
return 0;
}
StriveZs wechat
Hobby lead  creation, technology change world.
  • Post author: StriveZs
  • Post link: 1796.html
  • Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.