题解:P11568 「chaynOI R1 T1」一维数组

· · 题解

思路

好像输出 n1m1 即可。理由如下。

设一个数(若干个 1)为 10^{a}+10^{a-1}+…+10^0,另一个数(若干个 1)为 10^{b}+10^{b-1}+…+10^0

nm=(10^a+10^{a-1}+10^{a-2}+…+10^0)(10^b+10^{b-1}+10^{b-2}+…+10^0)

=10^{a+b}+10^{a+b-1}+…10^a+10^{a+b-1}+10^{a+b-2}+…+10^{a-1}+…10^b+10^{b-1}+…10^0 =10^{a+b}+2\times 10^{a+b-1}+3\times 10^{a+b-2}+…+3\times 10^2+2\times 10^1+10^0 =123…321

好像是个回文数。

然而,当中间某一项系数 >10 时,前一项就会进位,使其不为回文数。

那就只能把中间的 1 改为 0

这样,nm=(10^a+1)(10^b+1)

=10^{a+b}+10^a+10^b+1 注意特判 $n,m=1$ 的情况。 ## 代码 ```cpp #include<iostream> using namespace std; int main(){ int n,m; cin>>n>>m; if(n==1) cout<<1; else{ cout<<1; while((--n)>1) cout<<0; cout<<1; } cout<<" "; if(m==1) cout<<1; else{ cout<<1; while((--m)>1) cout<<0; cout<<1; } }