A community for students.
Here's the question you clicked on:
 0 viewing
liliy
 3 years ago
can someone explain to me what this code does:
public class D {
static double dp[][]=new double[51][51];static {
dp[1][1]=1;
for (int i=2;i<=50;i++)
for(int j=1;j<=50;j++)
dp[i][j]=dp[i1][j1]+dp[i1][j]*j;
}
public static void main(String args[]){
System.out.println("enterhow many lines:s");
Scanner sc=
new Scanner(System.in);
while (sc.hasNext()) {
int n=sc.nextInt();
if(n==0) break;
double ans=0;
for(int i=1;i<=n;i++)
ans+=dp[n][i];
System.out.printf("%d %.0f\n",n,ans);
}
}}
liliy
 3 years ago
can someone explain to me what this code does: public class D { static double dp[][]=new double[51][51];static { dp[1][1]=1; for (int i=2;i<=50;i++) for(int j=1;j<=50;j++) dp[i][j]=dp[i1][j1]+dp[i1][j]*j; } public static void main(String args[]){ System.out.println("enterhow many lines:s"); Scanner sc= new Scanner(System.in); while (sc.hasNext()) { int n=sc.nextInt(); if(n==0) break; double ans=0; for(int i=1;i<=n;i++) ans+=dp[n][i]; System.out.printf("%d %.0f\n",n,ans); } }}

This Question is Closed

KonradZuse
 3 years ago
Best ResponseYou've already chosen the best response.0alrighty.... Where did you see this? Crazy haha, lets begin.

KonradZuse
 3 years ago
Best ResponseYou've already chosen the best response.0static double dp[][]=new double[51][51];static { dp[1][1]=1; for (int i=2;i<=50;i++) for(int j=1;j<=50;j++) dp[i][j]=dp[i1][j1]+dp[i1][j]*j; } not too sure why static, but it's basically creating 2 dimensional array starting at 1 not 0 for some reason. Then it's basically storing dp[i][j]=dp[i1][j1]+dp[i1][j]*j; so for the first one it goes dp[2][1] = dp[1][0] + dp[0][1] * 1;

KonradZuse
 3 years ago
Best ResponseYou've already chosen the best response.0now the main is asking for you to enter a number n. if(n==0) break; double ans=0; for(int i=1;i<=n;i++) ans+=dp[n][i]; System.out.printf("%d %.0f\n",n,ans); } n cannot be 0, it starts at 1, then it runs through and saying ans (which is 0 at first) is = to ans + dp[n][i] which at first would be lets say n = 5, then ans = ans + dp[5][1] + dp[5][2] etc. Then prints it out.

liliy
 3 years ago
Best ResponseYou've already chosen the best response.0so if it starts at dp [1][1]. what is stored in the zero? (or does that not matter since we dont actually use it. in addition: if i put in 5. then it does dp[5[ 2] but what is [5][2]/ where did we initialze any values?

KonradZuse
 3 years ago
Best ResponseYou've already chosen the best response.0you can start anywhere, which is why n cannot = 0. dp[1][1]=1; is the initialization.

KonradZuse
 3 years ago
Best ResponseYou've already chosen the best response.0however it shows a 0 atsome point in that loop, which it's most likely going to be 0, or null.

liliy
 3 years ago
Best ResponseYou've already chosen the best response.0so when you put in a number, what does it do? what does the dp[][]actually do?

KonradZuse
 3 years ago
Best ResponseYou've already chosen the best response.0dp[i][j]=dp[i1][j1]+dp[i1][j]*j;

KonradZuse
 3 years ago
Best ResponseYou've already chosen the best response.0dp[2][1] = dp[1][0] + dp[0][1] * 1;

KonradZuse
 3 years ago
Best ResponseYou've already chosen the best response.0dp[2][1] = 0 dp[1][1] = 1 * 1 = 1. then dp[2][2] = = dp[2][1] + dp[1][2] * 2 =.....

KonradZuse
 3 years ago
Best ResponseYou've already chosen the best response.0it seems like it's printing out the line numbers.
Ask your own question
Sign UpFind more explanations on OpenStudy
Your question is ready. Sign up for free to start getting answers.
spraguer
(Moderator)
5
→ View Detailed Profile
is replying to Can someone tell me what button the professor is hitting...
23
 Teamwork 19 Teammate
 Problem Solving 19 Hero
 Engagement 19 Mad Hatter
 You have blocked this person.
 ✔ You're a fan Checking fan status...
Thanks for being so helpful in mathematics. If you are getting quality help, make sure you spread the word about OpenStudy.