无所ss


私信TA

用户名:qwaszx11002

访问量:1850

签 名:

等  级
排  名 26530
经  验 570
参赛次数 0
文章发表 5
年  龄 0
在职情况 学生
学  校 温州商学院
专  业

  自我简介:

解题思路:
主要还是通过找规律去写

本来已经写了一次了 结果手贱点了一下编辑模式 被清空了

以 k=10为例

当n=1时,有效数为9

当n=2时,有效数为90

当n=3时,有效数为821

当n=4时,有效数为8829

通过以上的列举其实可以发现当n>=3时,每一个有效数都是前两个之和去乘以(k-1)

通过思考就可以找到其中的原因有效数的要求是数字中不能有连续有两个或两个以上的0 

当n=3时,首项不可能为0,当第二个数为0的时候,其实就是n=2的有效数,当第三个数为0的时候,其实就是n=1的有效数,两个相加再乘以(k-1)就是本身的有效数

以此类推就可以算出之后的有效数字了

用数组表示就好

注意事项:

参考代码:

import java.util.Scanner;
public class java03 {
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
       int n = scanner.nextInt();
       int k = scanner.nextInt();
       int[] sum = new int[n + 1];
       for (int i = 1; i <= n; i++) {
           if (i == 1)
               sum[i] = k - 1;
           else if (i == 2)
               sum[i] = k * (k - 1);
           else
               sum[i] = (sum[i - 1] + sum[i - 2]) * (k - 1);
       }
       System.out.print(sum[n]);
   }
}

 

0.0分

3 人评分

  评论区

  • «
  • »