Imprimir en Java una cadena "s" su representación como función (ejercicio)

Hola, muy buenas tardes a todos. Soy nuevo realizando códigos en Java, más que nada en la lógica para realizar este tipo de código. Si alguien me puede dar una pista de cómo lo haría, se lo agradecería.

Las instrucciones son las siguientes:
Representación alternativa de un número natural

Considere la siguiente función:

S(1) es 1, si a esta función le aplico la función s nuevamente obtendré el 2 // s = 1 = S(1)

S(S(1)) es 2, si a este resultado le aplico la función s obtendré el 3 //s = 2 = S(S(1))

S(S(S(1) ) ) es 3. // s = 3 = S(S(S(1)))

Escriba un programa que dado un número n entero positivo imprima en una cadena s su representación como función de s. Si n es negativo o cero deberá escribir “Sin representación” y s será la cadena vacía (no nula).
Imprimir s

Mi idea es la que pongo en la imagen, propongo crear un método el cual me ayudará a dar la apariencia de ir porniendo S( dependiendo de n.


Dejo mi código aunque claro, esto es para que me den ideas de cómo lo harían. Gracias!
Uso NetBeans

import java.util.Scanner;

public class Ejercicio4 {
public String funcion(int n){
String [] sc = new String[n]; //sc = s(
String [] p = new String[n]; //p = paréntesis )
String s;
int i;
for (i = 0; i <= sc.length; i++){
sc = "S(";
p = ")";
}
return sc+"S(1)" +" "+p;
}
public static void main(String[] args) {
// TODO code application logic
Scanner lee = new Scanner(System.in);
System.out.println("Dame el valor de n");
int n = lee.nextInt();
String s = "";
Ejercicio4 num = new Ejercicio4();
num.funcion( n );

// CODIFICAR A PARTIR DE AQUÍ


if(n <= 0){
s.isEmpty();
System.out.println("Sin representación");
}
// FIN CODIFICACIÓN
System.out.println(funcion( n ));
}

}
 

Adjuntos

  • ej4.PNG
    ej4.PNG
    8.6 KB · Visitas: 2
Me voy a centrar en la lógica del asunto, no en la sintáxis. Eso lo resuelve usted. Puede haber algun error pero está muy cerca de lo que usted pide.

Definición de strings :
string A$ = "S("
string B$ = ")"
string C$= ""
string E$=""
string F$= ""
string D$=" sin representación "
,-----------------------------
Definición de variables :
input A% : A%=0
,---------------------------------------
Main :
input A%
If A% not = (% entero ) : print string D$ : goto main
If A% < = 0 : print string D$ : goto main
gosub "S"
goto "Main"
,----------------------------------------
Subrutinas
S :
for bucle% =0 to A%
string C$= C$+string A$
string E$= E$ +string B$
next A%
string F$= string C$+str$(A%) +string E$
printf string F$ : imprime el resultado
clear string C$, E$, F$ : limpia los registros usados
RETUNRN to "S"+1 : retorna al programa central

:rolleyes:
 
Me voy a centrar en la lógica del asunto, no en la sintáxis. Eso lo resuelve usted. Puede haber algun error pero está muy cerca de lo que usted pide.

Definición de strings :
string A$ = "S("
string B$ = ")"
string C$= ""
string E$=""
string F$= ""
string D$=" sin representación "
,-----------------------------
Definición de variables :
input A% : A%=0
,---------------------------------------
Main :
input A%
If A% not = (% entero ) : print string D$ : goto main
If A% < = 0 : print string D$ : goto main
gosub "S"
goto "Main"
,----------------------------------------
Subrutinas
S :
for bucle% =0 to A%
string C$= C$+string A$
string E$= E$ +string B$
next A%
string F$= string C$+str$(A%) +string E$
printf string F$ : imprime el resultado
clear string C$, E$, F$ : limpia los registros usados
RETUNRN to "S"+1 : retorna al programa central

:rolleyes:
Está excelente. Lo paso a Netbeans. Qué lenguaje ocupó?
 
Arriba