Bonjour,
je désirerai réaliser la suite de Conway sous la forme de code java, le professeur nous a donné la majeur partie du code et j'ai rajouté certaines lignes mais la compilation ne se passe pas bien et je n'arrive pas a resoudre les erreurs !
Pour ceux qui ne connaisse, Conway était un mathématicien qui a inventé la suite qui porte son nom.
Cette suite consiste en fait à épeler les chiffres comme à l'oral(elle commence à 1)
Exemple:
1
11
21
1211
111221
etc ... j'espere que vous avez compris le principe
je désire pour l'instant réaliser mon programme seulement avec les nombres 1, 11 et 13112221.
Pour les épeler je lis la chaine entiérement et je lis un a un les nombres en enlevant à chaque fois le premier... j'espere ne pas expliquer mal !
si l'ancien nombre "premier nombre" et le nouveau "premier nombre" sont egaux alors j'incrément une variable i qui se placera devant le nombre enregistré !
Apres ces petites explications, mieux vaut vous montrer directement !
Voila mon code source:
Code :
- //-------------------------Conway.java--------------------------------
- class Conway{
- private static final String NIL=""; //empty (lisp) list
- private static final String c="1"; //conway member 0
- private boolean trace = true;
- //si member est un terme de la suite de conway parse(member) retourne le terme suivant
- String parse(String member){
- while (String str!="" ){
- if (String cdr=String str) i=0;
- while(String cdr=String str){ i++; str.substring(1, (str.length()-1));}
- return Nil + i + c + parse(s);}
- }
- //since java 6: s.isEmpty() is equivalent to isNil(s)
- public boolean isNil(String str){
- return str.length()==0;}
- //retourne le premier caractere de la chaine placée en parametre
- private char car(String str){
- return str.charAt(0);}
- //retourne la chaine passée en parametre privée de son premier caractere
- //Nil si elle ne contient plus qu'un seul caractere (i.e. le cdr du singleton est la liste vide)
- private String cdr(String str){
- return str.substring(1);}
- }//class conway
- public class test{
- static Conway c = new Conway();
- public static void testParse(){
- String s ="";
- s="1" ;System.out.printf("parse(%s) = %s %n", s , c.parse(s));
- s="11" ;System.out.printf("parse(%s) = %s %n", s , c.parse(s));
- s="13112221" ;System.out.printf("parse(%s) = %s %n", s , c.parse(s));}
- public static void main(String[] args){
- int n = (args.length>0 ? Integer.parseInt(args[0]) : 0);
- testParse();}
- } //class test
|
Voila, merci de votre aide !
Cordialement, waylander