问题是计算N中能整除N的位数。这是我的代码-
int evenlyDivides(int N){
int temp = N;
int residue;
int count = 0;
while(temp) {
if(residue = temp % 10 && !(N % residue)) {
count++;
}
temp /= 10;
}
cout << count;
}
如果residue变量的值为零(比如N = 20),那么它将无法满足if语句的第一个条件,因此永远不会达到if语句的第二个条件(在这里我找到了N % residue)。
2条答案
按热度按时间mzaanser1#
你的技巧是可以理解的,但通常这是不好的做法,因为许多可能的陷阱类型。你的代码是一个范例,为什么?
编译器处理:
作为
根据C++ operator precedence,这是非常合乎逻辑的。
可能的解决方案:
s1ag04yj2#
以下是我在构建您的应用程序时得到的结果:
下面是我运行它时崩溃的地方(N=20):
建议变更: