如何找到大小为 k 的子数的计数

How to find the count of sub numbers of size k which divide the number

给定一个数字 n 在除以 num.

的数字 num 中求大小为 x 的子数的个数

例如,如果数字是 250 x=2 答案将是 2 作为 250%25==0 和 250 % 50==0.

任何人都可以帮我解决 cpp 代码吗?

class Solution {
public:
    int divisorSubstrings(int num, int k) {
        string s=to_string(num);
        int count=0;
        int i=0;
        int j=k-1;
        string temp="";
        for(int k=i;k<=j;k++)
        {
            temp.push_back(s[k]);
        }
        while(j<s.length())
        {
            if(num%stoi(temp)==0)
                count++;
            temp.erase(temp.begin() + i-1);
            j++;
            i++;
            temp.push_back(s[j]);
        }
        return count;
    }
};

这显示运行时错误

你有很多问题。首先,对变量使用简单的字母意味着我们不知道这些变量的用途。使用有意义的名称。

二、这个:

    for(int k=i;k<=j;k++)

您的方法有一个名为 k 的参数。你现在已经对它进行了阴影处理。从技术上讲,您可以这样做,但这是一个非常非常糟糕的习惯。

但真正的问题在于:

        temp.erase(temp.begin() + i-1);

i 初始化为 0,并且在该行第一次运行之后才更改。所以你实际上是在删除字符串开头之前的一个字符。