题目:请问由1-8组成的8位数中有多少个数字可以被1111整除?
首先这道题目看着很难,如果我们直接用代码做的话,也要跑很久,那能不呢想想有什么样的思路可以巧妙一点解开这道题目呢?
有的兄弟有的
这道题目的做法是用同余去巧妙的解决的。
首先我们把这个数字拆成两个部分。
然后我们知道10000%1111是余1的,那么A10000%11111==A,那么这个式子就可以写成
那么我们接着往下思考,其实A+B的每个位数加起来应该等于1+2+3+4…+8等于36,那么这个时候我们可以用一个定理,就是一个数字每个位置加起来等于9的倍数那这个数就是9的倍数(这个大家自己证明一下,或者问一下deepseek)。
然后既然它又可以被1111整除又可以被9整除,那么其实A+B就只能等于=9999了(因为111192已经高出了所能举出的最大的数字)
(下面举出一种情况)
那么这两边的数字的一边定了另一边也就定了,首先如果是确定的4个数字那么就有4!种可能,然后每个位置的数字其实是有两种可能(两边交换数字),也就是2222,最后两个相乘得到的就是384种可能。