你这个写法计算一组测试用例的时间复杂度是O(n^2),对于10^6的规模效率肯定是太低太低了。
可以这样
              1
           1 1
          111
        1111

11111111
从最后一列开始,每一列的和递减1,可以一列一列的加,加完一列取一次余,避免溢出。这样的话时间复杂度是O(n),运行时间在几秒以内。其实这是一道典型的模拟题,就是用数组模拟加法运算。

解决方案 »

  1.   

    (a*b)%c=(a%c*b%c)%c;n<=1000000: 100万个a排在一起,醉了
      

  2.   

    这玩应不是这么算的 暴力能解决还叫编程比赛么 肯定有玄机 善用百度啊少年http://blog.csdn.net/fool_ran/article/details/41127633
      

  3.   

    测试数据有多组,以文件结尾
    不理解题意?求说明
    我用的是递归的方法,不知道怎么使用。。
    private static void getSum(int a, int n) {
    double sum = 0;
    sum += getBefore(a, n); System.out.println((long) (sum % 1000000007));
    } private static double getBefore(int a, int n) {
    if (n == 1) {
    return a;
    } else {
    return Math.pow(10, n - 1) + getBefore(a, n - 1);
    }
    }