这个题肯定不能将字符串展开去依次求和,此时有两种做法

  1. 对于每一个12345678这样的数求是否是3的倍数,结果为1+2+3+4+……,当和为两位数或者三位数时,将它们当作一个数,还是分别做每个数相加再求余不影响结果,例如102 102%3 = 0 (1+0+2)也等于0。
  2. 该题结果应该为A[i] % 3,若结果为A[i]%3 = (1+2+3+...+i)%3;
    而自然数序列1,2,3,4,5...i取模3的结果分别是1,2,0,1,2,0,...,i%3,
    所以可以等性质A[i]%3 = (1+2+0+1+2+0...+i%3)%3;所以可得当i%3余0时,必定可以被整除
    当余2时,因为前面余了一个1,所以(1+2)%3也可以被整除,只有余1时不能被整除