计数
题意:
定义一函数s(x)表示x的每个位加起来的和。现在给你k,问你能找到几个数对(a,b),使得s(a+b)=s(a)+s(b),其中a和b都要是k位数,(a,b)和(b,a)视为不同的数对,a和b不能有前导零
数据范围:
k<=50
思路:
s(a+b)=s(a)+s(b),稍稍思考一下就发现,这个等式的意思就是a+b,每位都没有进位,因为只要一进位,s(a+b)的值就会变小
所以a的一个位取0,b的这个位就可以取0,1...9,a的一个位取1,b的这个位就可以取0,1...8...
总结起来一个位就可以产生10+9+8+...+1=55种情况,对于第一位,因为a和b不能有前导零,所以是8+...+1=36
所以答案就是36*55^(k-1)
题意:
定义一函数s(x)表示x的每个位加起来的和。现在给你k,问你能找到几个数对(a,b),使得s(a+b)=s(a)+s(b),其中a和b都要是k位数,(a,b)和(b,a)视为不同的数对,a和b不能有前导零
数据范围:
k<=50
思路:
s(a+b)=s(a)+s(b),稍稍思考一下就发现,这个等式的意思就是a+b,每位都没有进位,因为只要一进位,s(a+b)的值就会变小
所以a的一个位取0,b的这个位就可以取0,1...9,a的一个位取1,b的这个位就可以取0,1...8...
总结起来一个位就可以产生10+9+8+...+1=55种情况,对于第一位,因为a和b不能有前导零,所以是8+...+1=36
所以答案就是36*55^(k-1)
总结:s(a+b)=s(a)+s(b)等价于a和b相加,每位都没有进位,由此推导出答案是36*55^(k-1)