給定一個數 n 求一個數 num 除以 num 中大小為 x 的子數的個數。
例如,如果數字為 250 且 x=2,則答案將為 2,即 250%==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;
}
};
這顯示運行時錯誤
uj5u.com熱心網友回復:
你有很多問題。首先,對變數使用簡單的字母意味著我們不知道這些變數的用途。使用有意義的名稱。
其次,這個:
for(int k=i;k<=j;k )
您的方法有一個名為 k 的引數。你現在已經遮蔽了它。從技術上講,你可以這樣做,但這是一個非常非常糟糕的習慣。
但真正的問題在這里:
temp.erase(temp.begin() i-1);
i 被初始化為 0 并且在此行第一次運行之后才更改。所以你實際上是在字串開始之前擦除一個字符。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/474910.html
