基本上,我正在尝试创建一个找到数字因子的应用程序,但我不完全确定要显示所有因素,现在它只显示最后一个因素。
while(factorNumber <= finalValue){
if(finalValue % factorNumber == 0){
tv2.setText(factorNumber + " is a factor of " + finalValue);
}
factorNumber ++;
}
答案 0 :(得分:1)
在调用setText
之前累积字符串:
try (Formatter fmt = new Formatter()) {
while(factorNumber <= finalValue){
if(finalValue % factorNumber == 0){
fmt.format("%s is a factor of %s%n", factorNumber, finalValue);
}
factorNumber ++;
}
tv2.setText(fmt.toString());
}
请注意,您不需要测试多个因素:您可以停留一次finalValue > sqrt(finalValue)
;或者:
while (factorNumber * factorNumber <= finalValue) {
答案 1 :(得分:1)
您可以附加到文本视图或只创建一个因子列表并显示它。
ArrayList<Integer> list = new ArrayList<>();
while(factorNumber <= finalValue){
if(finalValue % factorNumber == 0){
list.add(factorNumber);
}
factorNumber ++;
}
tv2.setText(factorNumber + " is a factor of " + list);
别忘了导入:
import java.util.ArrayList;
答案 2 :(得分:0)
尝试使用追加
boolean isFirstTime = true;
while(factorNumber <= finalValue){
if(finalValue % factorNumber == 0){
if(isFirstTime)
{
tv2.append(factorNumber);
isFirstTime = false;
}else{
tv2.append(","+factorNumber);
}
}
factorNumber ++;
}
tv2.append(" is a factor of " + finalValue + "\n");