📌  相关文章
📜  每K个连续数字之和等于|的N位数的计数|套装2

📅  最后修改于: 2021-04-26 06:31:51             🧑  作者: Mango

给定两个整数NK ,任务是查找该数字的每K个连续数字之和相等的所有可能的N位数的计数。
例子:

朴素和滑动窗口方法:最简单的方法和基于滑动窗口技术的方法,指的是N个数字的计数,其每K个连续数字之和等于。
对数方法:
为了使K个连续元素的总和始终相等,整数由其前K个数字控制。

  • i数字将等于该数字的(ik)数字,以满足条件,即每K个连续数字之和是相同的。

因此,要解决该问题,现在的任务是找出等于10 K – 10 (K-1)K位数字的总数。因此,将计算出的值打印为答案。
下面是上述方法的实现:

C++
// C++ Program to implement
// the above approach
#include 
using namespace std;
 
// Function to count the number of
// N-digit numbers such that sum of
// every K consecutive digits are equal
void count(int n, int k)
{
    long count = (long)(pow(10, k) - pow(10, k - 1));
 
    // Print the answer
    cout << (count);
}
 
// Driver Code
int main()
{
    int n = 2, k = 1;
    count(n, k);
}
 
// This code is contributed by Ritik Bansal


Java
// Java Program to implement
// the above approach
class GFG {
 
    // Function to count the number of
    // N-digit numbers such that sum of
    // every K consecutive digits are equal
    public static void count(int n, int k)
    {
        long count
            = (long)(Math.pow(10, k)
                     - Math.pow(10, k - 1));
 
        // Print the answer
        System.out.print(count);
    }
 
    // Driver Code
    public static void main(String[] args)
    {
        int n = 2, k = 1;
        count(n, k);
    }
}


Python3
# Python3 program to implement
# the above approach
 
# Function to count the number of
# N-digit numbers such that sum of
# every K consecutive digits are equal
def count(n, k):
     
    count = (pow(10, k) - pow(10, k - 1));
 
    # Print the answer
    print(count);
     
# Driver Code
if __name__ == '__main__':
     
    n = 2;
    k = 1;
     
    count(n, k);
     
# This code is contributed by 29AjayKumar


C#
// C# Program to implement
// the above approach
using System;
class GFG{
   
  // Function to count the number of
  // N-digit numbers such that sum of
  // every K consecutive digits are equal
  public static void count(int n, int k)
  {
    long count = (long)(Math.Pow(10, k) -
                        Math.Pow(10, k - 1));
 
    // Print the answer
    Console.Write(count);
  }
 
  // Driver Code
  public static void Main(String[] args)
  {
    int n = 2, k = 1;
    count(n, k);
  }
}
 
// This code is contributed by Rohit_ranjan


Javascript


输出:
9

时间复杂度: O(log K)
辅助空间: O(1)