Addition de 2 entiers java [Résolu/Fermé]

Signaler
-
Messages postés
16152
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
15 janvier 2021
-
Bonjour,
Je veux faire une addition de 2 grands entiers.Alors j'ai fais le code suivant qui m'a pas donné la bonne résultat. Est ce que s'il vous plait vous pouvez m'aider?!
String entier;
	
	public static String addition(String s1,String s2)
	{
	    int retenu=0;
		String resultat="";
		int ent1 ;
		int ent2;
		int i=s2.length()-1;
			if(s1.length()>s2.length() && i>0)
			{
				for(int k=s1.length()-1;k>=s1.length()-s2.length();k-- )
				{
				 ent1 = Integer.parseInt(s1.charAt(k)+"");
				 ent2= Integer.parseInt(s2.charAt(i)+"");
				 i--;
				int somme=ent1+ent2;
				 if(somme>=10)
				{
				retenu=1;
				resultat=somme-10+retenu+""+resultat;
				}
				else 
					resultat=somme+""+resultat;
			    }
				 for(int j=s1.length()-s2.length()-1;j>=0;j--)
					resultat=s1.charAt(j)+""+resultat;
			}
		return resultat;
	}
	  public static void main(String[] args)
	  {
			String s1="1232434534634673";
			String s2="13972324";
			
			String s=addition(s1,s2);
			
			System.out.println(s);	  
	  }



A voir également:

2 réponses

c'est la résultat de l'addition :1232434547616997
Messages postés
16152
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
15 janvier 2021
2 767
Est-ce que tu sais que des grands nombres existent déjà en Java ?

public static String addition(String s1,String s2)
{
	return new BigInteger(s1).add(new BigInteger(s2)).toString();
}
ah bon c'est vrai oO) en faite dans le TP , nous a demandé de définir des grands entiers pour les additionner
Merci beaucoup :)
Messages postés
16152
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
15 janvier 2021
2 767
On te demande très certainement de créer une classe de grands entiers, là tu fais une méthode static de manipulation de String ce n'est pas très pertinent, il n'y a qu'à voir toutes tes conversions (bancales) de String en entier et inversement avec tous tes +"" qui se promène c'est très moche.
Bien sûr ce n'est pas là le problème, mais en concevant mieux ta classe et en manipulant par exemple une liste de chiffre au lieu d'une chaîne de caractères, tu te casserais moins la tête, ton code gagnera en lisibilité et tu pourras mieux le déboguer. D'ailleurs utiliser un débogueur te serais très utile ici pour faire fonctionner ton programme pas à pas et pointer à partir de quel moment ça ne se déroule plus comme tu l'attendais.