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.
Je donne le code en suivant au cas ou jaurai fais d'autre betise.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);
Si quelqun pouvait me dire ou est ma faute
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
D'avance merci
Marc_3
Partager