gpt4 book ai didi

java - 控制流说明

转载 作者:行者123 更新时间:2023-12-02 01:26:37 25 4
gpt4 key购买 nike

编写一个名为 hasSharedDigit 的方法,并带有两个 int 类型的参数。

数字在 10 到 99 之间

如果有一个数字同时出现在两个数字中,例如12和23中的2,该方法应该返回true;否则,该方法应返回 false。

我有一个解决方案,但不太明白它是如何工作的。我需要英文解释。

public class SharedDigit {
public static boolean hasSharedDigit(int numA,int numB){
if((numA<10||numA>99)||(numB<10||numB>99)){
return false;
}
int realNumB=numB;
while(numA>0){
int numADig=numA%10;
while(numB>0){
int numBDig=numB%10;
if(numADig==numBDig){
return true;
}
numB=numB/10;
}
numA=numA/10;
numB=realNumB;
}
return false;
}
}

我不明白这段代码如何检查匹配数字的所有可能性

最佳答案

这里:

while(numA>0){
int numADig=numA%10;

使用取模运算符来“获取”数字的最后一位数字,请参阅 here了解更多信息。例如,第一步可以从 13 中得到“3”。

稍后,您会:

 numA=numA/10;

这会将 13 变成 1(整数除法)!之前的初始循环条件确保您在执行 13/10 .. 然后执行 1/10 时停止。

所以这个循环将 13 变成 3,然后是 1,然后停止。

同样的“方法”用于获取第二个数字的数字。一旦您在两个数字中找到一个数字,您就可以返回 true。

否则,如果您遍历第一个数字的所有数字,并将它们与第二个数字中的所有数字进行比较...不匹配,则返回 false。

真正的答案在这里,顺便说一句:当你不明白代码的作用时:

  • 使用搜索引擎研究来源中您不知道的所有内容
  • 使用调试器或简单的 System.out.printl() 语句使您能够观察代码正在执行的操作
  • 最后,当所有这些都失败并让你产生怀疑时,请来这里寻求帮助

关于java - 控制流说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56809214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com