Bonjour,
je dois ecrire un programme qui calcule une multiplication avec le schema suivant inscrit dans une recursion.

On recois 2 nombres (int) par ex 2589 et 4568
et on doit ecrire une recursion qui suit le modele suivant:

if n == 1
return Erg = Erg + 258*456*100

if n == 2
Erg =( Erg + (258*8 + 456*9) * 10 )+ appel recur n == 1

if n == 3
Erg = (8 * 9) + appel recur n == 2+ appel recur n == 1

Je crois avoir ecris quelque chose de pas trop mal dans ce sens mais jai du mal a finir car je n'arrive pas a expliquer a l'interpreteur que dans ma class multirekur j'ai deux methodes une main et une multi.

Je suppose que je fais une confusion entre la syntaxe de la recursion
et la syntaxe d'une methode ordinaire.

Toujours est'il que je recois deux messages d'erreurs.

1) class expected pour
Erg = Erg + multi(int n, int c, int d, int e, int f, int Erg);

2)
et ')' expected
Erg = Erg + multi(int n, int c, int d, int e, int f, int Erg);
Je donne le code en suivant au cas ou jaurai fais d'autre betise.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
 
public class multirekur{
 
	public static void main (String []args){
 
 
	int a = 26473;			//Anfang Initialisierung
	int b = 3428;
 
	int c = a%10;
	int d = b%10;
 
	int e = (a-c)/10;
	int f = (b-d)/10;		
 
	int n = 3;					
	int Erg = 0;			//Ende Initialisierung
 
 
	System.out.println( " int a = "+a); 		//Print Initialisierung
	System.out.println( " int b = "+b);
	System.out.println( " int c = "+c);
	System.out.println( " int d = "+d);
	System.out.println( " int e = "+e);
	System.out.println( " int f = "+f);
 
	int Erg = Erg.multi(n, c, d, e, f, Erg);	//Appel recursion
 
	System.out.println( " Das Ergebnis der Multiplikation ist " +Erg);
 
} 		//Ende Main
 
		//Rekursion
 
	  public static int multi(int n, int c, int d, int e, int f, int Erg){
 
		if (n == 1){
			Erg = c * d * 100 + Erg;
			return Erg ;	
			}
 
		if (n == 2){
			n = n - 1;
			Erg = ((e * d + c * f)* 10 + Erg); 		
			Erg = Erg + multi(int n, int c, int d, int e, int f, int Erg);
			}
 
		else{
			n = n - 1;
			Erg = e * f;
			Erg = Erg + multi(int n, int c, int d, int e, int f, int Erg);
			}
 
 
}		// Ende Rekursion
 
}		//Ende class multirekur
Si quelqun pouvait me dire ou est ma faute

D'avance merci

Marc_3