Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 7 years ago.
Improve this question
2- (Display patterns) Write a method to display a pattern as follows:
1
2 1
3 2 1
…
n n-1 … 3 2 1
The method signature is public static void displayPattern(int n). the user enters number for how long they want the pattern to be.
I know how to set it up but don't know what code to use inside the method. This is how far I got-
Scanner input=new Scanner(System.in);
System.out.println("Please enter the num for how long the pattern is");
int n= input.nextInt();
}
public static void TheNum(int n){
}
for(int i=0; i <= n; i++) {
for(int j=i; j > 0; j--) {
System.out.print(j + " ");
}
System.out.println();
}
In the above loops. First loop goes from 0 to n times depending on value of n. Second loop is goes from value of i and keeps looping as long as j > 0.
First loop i=0 prints nothing, for i=1 j prints 1, only once then come out of loop and i become 2 and the inner loop prints 2 and 1 and then comes out of loop and prints new line and i become 3 and then inner loop print 3 and 2 and 1 and then come out of loop and so on.
Put above code in your method TheNum and then call your method passing it value of n that is provided by user as below:
TheNum(n);
Put above function call after the statement that takes the input.
Related
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
Problem with output from a two dimensional array, basically 8 rows and 5 columns, each row represents one athlete, the five colums represent the points they have gained in each task. I have to find out If an athlete went beyond 250 points in a single task. Firstly, I made an integer which counts the number of times the Array has been look at, If the number can be divided by 5 it means the next number is going to be the next row and thus a new athlete, next I created another loop to check all the previous numbers and if any of them goes beyond 250, I add one number to the total + break the cycle. The result I have been getting back is 0, or before I got nothing.
for (i=0; i<8; i++) {
for (j=0; j<5; j++)
if(rezultati[i][j]>0) {
skaits = skaits + 1;
}
else if(skaits % 5==0) {
for (int a=0; a<5; a++) {
if(rezultati[i-a][j-a]>250) {
daudzums = daudzums + 1;
break;
}
}
}
}
realised that the row index should be just i if(rezultati[i][j-a]>250), didnt fix the issue tho
You already have an outer loop that will move to the next row/athlete for you. Simply look at the current value and if it exceeds 250, increment your counter and move to the next athlete with break:
int daudzums = 0;
int[][] rezultati = new int[8][5];
// ... populate zezultati somehow ...
for (int i=0; i<rezultati.length; i++) {
for (int j=0; j<rezultati[i].length; j++) {
if (rezultati[i][j]>250) {
daduzums++;
break; // move to next athlete
}
}
}
System.out.println("daudzums = " + daudzums);
After the loops, daudzums will tell you how many athletes had at least one task over 250.
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 2 years ago.
Improve this question
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int c[] = new int[n];
for(int c_i=0; c_i < n; c_i++){
c[c_i] = in.nextInt();
}
Arrays.sort(c);
int t=0;
for (int i=0;i<n-1;i++){
if(c[i]==c[i+1]){
t++;
i++;
}
}
System.out.println(t);
}
}
When I am removing i++ from if condition and making i=i+2 in for loop, the output is changing for certain test cases. Can someone explain me the reason as in both conditions i is incrementing by 2.
The i++ inside your loop's body is only performed if c[i]==c[i+1], so i is incremented by 1 in some iterations and by 2 in other iterations.
On the other hand, the loop's increment is always performed, so if the loop's increment is changed to i+=2 (and the i++ inside the loop's body is removed), i would be incremented by 2 in every iteration.
Therefore
for (int i=0;i<n-1;i++){
if(c[i]==c[i+1]){
t++;
i++;
}
}
is not equivalent to
for (int i=0;i<n-1;i+=2){
if(c[i]==c[i+1]){
t++;
}
}
Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 4 years ago.
Improve this question
I need two input array A and array B.
The answer will be like this - if input A is
{5,2,6,8}
and input B is
{6,5,5,8,5,6}
then the output will be:
2 (0 times), 5 (3 times), 6 (2 times), 8 ( 1 times)
Here is an example of how you can achieve it.
public static void main(String[] args) {
int[] A={5,2,6,8},
B={6,5,5,8,5,6};
int[] count = new int[A.length]; // An array counting the occurences
StringBuilder result = new StringBuilder(); // The String to be displayed. StringBuilder is better than String, when multiple concatenations occur.
Arrays.sort(A); // Sorts array A in ascending order (by default).
// This loop counts the occurence of each value of A inside B
for (int i = 0; i <A.length; i++){
for (int j = 0; j < B.length; j++){
if (A[i] == B[j])
count[i]++;
}
// After each value of A, add the number of occurence in the String
result.append(A[i]).append(" (").append(count[i]).append(" times), ");
}
// Displays the String in the console, removing the last ", "
System.out.println(result.substring(0,result.length()-2));
}
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 6 years ago.
Improve this question
I'm trying to print a certain triangle in Java by using Nested Loops and I am having difficulty. Could somebody give me a hand or just show me how it's done?
The triangle is:
123456654321
1234554321
12344321
123321
1221
11
I can print a triangle like
123456
12345
1234
123
12
1
Though I'm not sure how to reverse and make my loops count down afterwards.
This works:
public class Main {
public static void main(String args[]) {
int n = 6;
while (n > 0) {
for (int i = 1; i <= n; i++) {
System.out.print(i);
}
for (int i = n; i > 0; i--) {
System.out.print(i);
}
System.out.println("");
n--;
}
}
}
The second for loop assigns n to the iterator int i, executes the statements within the curly brackets, then decrements i using i-- until the condition i > 0 is no longer true.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
Answered:
The assignment I was given is to write a Java program that outputs an isosceles triangle based on the users input. For instance, if a user were to input the number 5 after being prompted, the program would output
*****
****
***
**
*
We were instructed to use while loops, but I was not having any success with that. I decided to use for loops instead but am still having trouble. I've declared my variables and have prompted the user for input. Below you will find my for loops. Please help! All my program is doing is printing out a continuous column of pound signs.
//For loop
for (CountOfRows=UserInput; CountOfRows>0; CountOfRows--)
{
System.out.println("# ");
for (CountOfColumns=UserInput; CountOfColumns>0; CountOfRows++)
{
System.out.println("# ");
}
}
If you'd like to use a while loop, you can simply do this:
while(num > 0){ //stay in loop while the number is positive
int temp = num; //make a copy of the variable
while(temp-- > 0) //decrement temp each iteration and print a star
System.out.print("*"); //note I use print, not println
System.out.println(); //use println for newline
num--; //decrement number
}
You need to change your inner for loop so that it runs until the end of the index from the first for loop like this:
int num = 5;
for (int i = num; i > 0; i--) {
for (int j = 0; j < i; j++) {
System.out.print("*");
}
System.out.println();
}