传送门
好简单的水题啊
位数大可以用字符串
具体分成(4)种情况来做:
(下面将数字一叫做(s1),数字二叫做(s2))
-
乘法:
- 输出(1)
- 输出(s1s2)位数之和减(2)个(0)(两数各抹掉最高位(1))
like this
10000//10的4次方 * 1000//10的3次方 ————————— 10000000//10的4+3次方
-
加法且(s1s2)位数不同且(s1)比(s2)大:
- 将(s1)从后往前数第(s2)长度位设为(1)
- 输出(s1)
like this
10000//5位 * 1000//4位 ———————— 11000//将s1第4位(从后往前)设为1
-
加法且(s1s2)位数不同且(s2)比(s1)大:
- 将(s2)从后往前数第(s1)位设为(1)
- 输出(s2)
like this
1000//4位 * 10000//5位 ———————— 11000//将s2第4位(从后往前)设为1
-
加法且位数相同:
- 将(s1)最高位设为(2)
- 输出(s1)
like this10000//5位 * 10000//5位 ———————— 20000//最高位设为2
[]
分别对应下面4段程序
cout<<1;
for(int i=0;i<s1.size()+s2.size()-2;i++)cout<<0;
s1[s1.size()-s2.size()]='1';
cout<<s1;
s2[s2.size()-s1.size()]='1';
cout<<s2;
s1[0]='2';
cout<<s1;