【发布时间】:2016-02-13 03:18:33
【问题描述】:
我是递归的新手,有人可以启发我。
问题是:
求 #101 学生的测验平均成绩。"
我已经使用迭代解决了它,但我不知道如何将它转换为递归。
import java.io.*;
import java.util.*;
public class Test{
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Scanner sc = new Scanner(System.in);
String arr[][] = {{"101","Quiz","90"},{"101","CS","80"},{"102","Quiz","85"},{"101","Quiz","75"},{"103","CS","84"},{"101","Quiz","87"}};
int sum = 0;
int ave = 0;
System.out.println("Student #\tType\tGrade");
for(int ctr = 0; ctr<arr.length; ctr++){
System.out.println(arr[ctr][0]+"\t\t"+arr[ctr][1]+"\t"+arr[ctr][2]);
if(arr[ctr][0] == "101"){
if(arr[ctr][1] == "Quiz"){
sum += Integer.parseInt(arr[ctr][2]);
ave += 1;
}
}
}
System.out.println("The Average quiz of Student # 101 is: "+ sum/ave);
}
}
【问题讨论】:
-
虽然这个
if(arr[ctr][1] == "Quiz")可以工作,因为您正在比较文字,但如果您将从用户读取的字符串与==进行比较,您会感到非常惊讶。请阅读"How do I compare strings in Java?"。 -
@Pshemo 不错。经典的 java gotchya。
-
您可能想研究有关该主题的现有帖子,这些帖子可以在bing.com/search?q=java+convert+loop+to+recursion 找到。有些帖子甚至有解释(除了一些理论文章如secweb.cs.odu.edu/~zeil/cs361/web/website/Lectures/…,但你应该已经很清楚一般的方法)。
-
为什么你需要一个递归解决方案来解决非递归问题?
标签: java recursion multidimensional-array