数数字
题目如下
看似可以暴搜的一个题然而会有这么一个情况:x*y<=9的情况下暴搜没有一点问题,但是x*y>=10的情况下就要另外考虑了,(要进位啊)但是可以推出来一个很妙的方法(看了别人讲后才知道)
看一下啊6*8=48 66*8=528 666*8=5328 6666*8=53328 66666*8=533328 ......可以看出来啊就是第一位和倒数第二位永远是不会变得,n有多少位,中间就有n-3个3(有的样例不一定是3)那么我们只要判断两种条件:
(1)x*y<=9 小于九的话判断等不等于d,等于的话就输出n,不等于输出0
(2)x*y>=10大于九的话把这个数先求出来再把第一个和中间的一个以及最后那两位,所以我们只求四位就可以了
代码如下: