c++中A*B问题求解

lichengman 2009-03-12 10:41:15
Problem H:A*B

Time Limit:2000MS Memory Limit:65536K
Total Submit:45 Accepted:10
Case Time Limit:1000MS

Description

理查最近迷上了一种数, 这种数由前 n 个自然数拼接而成, 为方便起见, 记其为 P(n). 如: 前 4 个自然数拼接出来的数 P(n) = 1234. 理查发现这种数做乘法运算时有一些规律, 如:



P( 4 ) * P( 4 ) = 1522756
P( 4 ) * P( 5 ) = 15233730
P( 4 ) * P( 6 ) = 152344704
P( 4 ) * P( 7 ) = 1523455678
P( 4 ) * P( 8 ) = 15234566652
P( 4 ) * P( 9 ) = 152345677626
P( 4 ) * P( 10 ) = 15234567774940
P( 4 ) * P( 11 ) = 1523456777507574
P( 4 ) * P( 12 ) = 152345677750772208


现在的问题是这些数增长得很快. 譬如 P(50) = 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950. 因此, 当 n 比较大时要做这种数的乘运算有点困难. 理查需要你的帮忙.

问题要求对于给定的 n, m, 请计算乘积 P(n)*P(m).

Input

有多个测试用例. 每个测试用例占一行, 包含两个自然数 n, m (1 ≤ n,m < 10000). 你可以假定给出的 n,m 总是使得 P(n) 和 P(m) 的十进制数字个数接近而不超过 2 的某个整数次幂.

输入直至没有数据为止.

Output

对于每个测试用例, 请在一行上输出乘积 P(n)*P(m). 为了减少输出量, 只须输出乘积的一部分: 从个位数开始, 每 16 个十进制数字, 只输出其最低 4 位.

注意: 不能有多余的前导和后缀空格.

Sample Input


4 4
4 12

Sample Output


2756
152208
...全文
707 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
mark先
chin_chen 2009-03-12
  • 打赏
  • 举报
回复
题目好长啊。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧