2013-05-30 38 views
2

我是Java的初学者,还有一些我想知道的事情以及可能性。我想知道在输出之后是否有一种方法来“计算”int数量。我简单代码的目标是计算给定数字的因子(例如:10的因子是1,2,5,10,我应该显示“4”,因为它是数字上的因子总数)。到目前为止,我只能显示个人因素(例如1,2,5,10)。在Java上获得总数的因子

这是我的简单代码。

public static void main(String[] args) { 
    System.out.println("Enter a number whose factors are desired: "); 

    Scanner scanNum = new Scanner(System.in); 

    int numFac = 0; 


    if(scanNum.hasNextInt()) 
    { 
    numFac = scanNum.nextInt(); 
    } 

    System.out.println("The Factors of the entered number are:-"); 

    for(int i = 1; i <= numFac; i++) 
    { 


    if(numFac%i == 0) 
    { 
     System.out.print(i+" "); 
    } 
    } 
} 

我可以做些什么?

+0

只取第二个变量,即说j = 1并更新它在if语句内...并且比for循环外打印j的值作为因子的数量... – aProgrammer

回答

3

引入int来计算因子。

int factorCount = 0; 
for(int i = 1; i <= numFac; i++) 
{ 
    if(numFac%i == 0) 
    { 
     factorCount++; 
     System.out.print(i+" "); 
    } 
} 
System.out.println("Number of factors " + factorCount; 
+0

哇,哇。问题的答案很快,谢谢你们。我希望当我更好地成为一名程序员时,我将能够以同样的方式帮助你们。 – rsarellano

1

所以添加计数器:

int count = 0; 
for(int i = 1; i <= numFac; i++) { 
    if(numFac%i == 0) { 
     System.out.print(i+" "); 
     count++; 
    } 
} 

System.out.print("Number of factors is: " + count); 
1
int displayFactors(int num) { 
    int numOfFactors=0; 
    for (int i = 1; i < num; i++) { 
     if (num%i == 0) { 
      numOfFactors++; 
     } 
    } 
    return numOfFactors; 
} 
1
public class Test { 

public static void main(String[] args) 
{ 
    ArrayList<Integer> x = numberFactors(5000); 
    System.out.println("Factors: "+x+"\nTotal: "+x.size()); 
} 

public static ArrayList<Integer> numberFactors(int num){ 
    ArrayList<Integer> aux=new ArrayList<>(); 
    for(int i=1;i<=num/2;i++){ 
     if((num%i)==0){ 
      aux.add(i); 
     } 
    } 
    return aux; 
} 

}