Завтра будет большая Java-программа для моего класса Comp Sci 2.В одной крупной Java-программе есть несколько проблем.
- Разработайте рекурсивный метод f1, чтобы вычислить результат 1 + 2 + 4 + 8 + 16 + 32 +… + 4096 и вернуть такую сумму послевызов f1 (4096).Нет необходимости печатать внутри метода.
2. Разработать рекурсивный метод f2 для вычисления результата 1 / i + 2 / (i-1) + 3 / (i-2) +… +(i-1) / 2 + i / 1 и вернуть такое значение.Нет необходимости печатать внутри метода.
3. Население мира достигло 6 миллиардов человек в 1999 году и ежегодно увеличивается на 1,4 процента.Напишите рекурсивную функцию f3 для возврата / определения, когда численность населения превысит 10 миллиардов.
Разработайте рекурсивную функцию f4, которая возвращает последовательность String «1 2 3 4 5… i» при вызове f4 (i).
То же, что число 4,но поменял местамивозвращаемая последовательность String "5 4 3 2 1 ..." при вызове F5 (i).
Разработать рекурсивную функцию f6 для возврата последовательности String «1 2 3 4 5…i (i-1) (i-2)… 5 4 3 2 1 ”, когда вызывается f6 (1, i).
Я уже пытался выяснить правильные операторы ifдля каждого, и попытался выяснить правильные операторы возврата и конечные результаты для каждого.
public class RecursiveMethod{
public static void main(String[] args){
F1(4096);
F2(1);
F3(6,000,000,000);
F4(i);
F5(i);
F6(1,i);
}
public static int F1(int n)
{
if (n==0){
return 1;
}else{
return n+n*2;
}
}
public static int F2(int i)
{
if(i==0){
return 0;
}else{
return F2(i++) + F2(i--);
}
}
public static int F3(int pop, int rate)
{
if(pop<=6,000,000,000){
return F3;
}else{
int Population = pop + (pop * rate / 100);
return F3(10,000,000,000);
}
}
public static String F4(String i)
{
if(Integer.parseInt(i) <= 1){
return "1";
}else{
return i + " " + F4(Integer.parseInt(i)+1);
}
}
public static String F5(String i)
{
if (Integer.parseInt(i) <= 1){
return "1";
}else{
return i + " " + F5(Integer.parseInt(i)-1);
}
}
public static String F6(String i)
{
if (Integer.parseInt(i) <= 1){
return "1";
}else{
return i + " " + F6(Integer.parseInt(i)+1) + F6(Integer.parseInt(i)-1);
}
}
}
Ожидаемые результаты есть в каждом пронумерованном вопросе, хотя каждый вопрос не позволяет мне использовать "System.out.print"внутри.