- 1
Method not returning the array. Pls suggest the proper solution.
//method to find factors of a number public static int[] factors(int x) { int i,rem=1,count=0,j=0; for(i=1;i<=x;i++) //this loop counts the number of factors { rem=x%i; if(rem==0) count=count+1; } //System.out.println(count); int[] arr = new int[count]; for(i=1;i<=x;i++) //loop to assign values to array { rem=x%i; if(rem==0) { arr[j]=i; //System.out.println(arr[j]); j=j+1; } } return arr; }
7 odpowiedzi
+ 3
it works, try:
import java.util.Arrays;
public class Program {
public static void main(String[] args) {
int[] f = factors(10);
System.out.println(Arrays.toString(f) );
}
//method to find factors of a number
public static int[] factors(int x){
// ...
}
}
+ 1
Hello Denise,
Thanks for your response
+ 1
The problem is the way how you try to print the result array
System.out.println(factors(10));
you get then something like
[I@4617c264
+ 1
Deepak Sandha
to print Arrays:
Array.toString() and for multidimenaional arrays Arrays.deepToString().
0
Hello Deepak Sandha
Can you explain your problem?
Does the method not return the array or not a correct array?
in your main:
int[] arr = factors(5);
What happens? What would be the expected output?
0
/*Output should be factors of 10 i. e.
1
2
5
10*/
//but output is something else
public class Program
{
public static void main(String[] args) {
System.out.println(factors(10));
}
//method to find factors of a number
public static int[] factors(int x)
{
int i,rem=1,count=0,j=0;
for(i=1;i<=x;i++) //this loop counts the number of factors
{
rem=x%i;
if(rem==0)
count=count+1;
}
//System.out.println(count);
int[] arr = new int[count];
for(i=1;i<=x;i++) //loop to assign values to array
{
rem=x%i;
if(rem==0)
{
arr[j]=i;
//System.out.println(arr[j]);
j=j+1;
}
}
return arr;
}
}
0
Thank u
Zemiak and Denise
now I got it