无所ss


私信TA

用户名:qwaszx11002

访问量:1709

签 名:

等  级
排  名 25001
经  验 558
参赛次数 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 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区