Sprawdzanie w innym systemie niż dziesiętny

0

Witam, jest ktoś w stanie zmienić ten kod aby sprawdzał on czy a + b = c uwzględniając że podane cyfry (od 0 do 9) mogły być podane w innym układzie niż dziesiętny (np. jako ósemkowe).

package javaapplication1;
import java.util.Scanner;

public class ProgramJava {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        

        System.out.println("Podaj pierwszÄ… liczbÄ™:");
        int a = scanner.nextInt();
        System.out.println("a = " +a);
        System.out.println("Podaj drugÄ… liczbÄ™:");
        int b = scanner.nextInt();
        System.out.println("b = " +b);
        System.out.println("Podaj trzeciÄ… liczbÄ™ ktĂłra jest sumÄ… dwĂłch poprzednich:");
        int c = scanner.nextInt();
        System.out.println("c = " +c);
       

        System.out.println("Suma a i b to " + c);
       
        if(a+b == c){
            System.out.println("Prawda");
        }
        else {
             System.out.println("Fałsz");
        }
      
    }
    
}

0

A z czym konkretnie masz problem? Potrzebujesz algorytmu który przypomina "dodawanie pisemne" tylko że "przeniesienie" robisz kiedy suma przekracza podstawę systemu liczbowego a nie koniecznie 10. Czyli masz np.

 123
+123

I powiedzmy że to system o podstawie 4, więc robisz 3+3 = 6 więc będzie przeniesienie, w wyniku wpisujesz 6%4 = 2 a przenosisz dalej 6/4 = 1 i postępujesz analogicznie dalej.

3

Na podstawie cyfr możesz określić możliwe podstawy systemu, bo będą max(cyfra+1)...10 bo jeśli np. najwieksza cyfra to 4 to wiadomo że podstawa może być pomiędzy 5 a 10 ale nie mniejsza. Napisz teraz funkcję która sumuje liczby w wybranym systemie w taki sposób w jaki pokazałem.
~ @Shalom

Można by więc zacząć tak: ten kod

if(a+b == c){

zmienić na taki (nazwa metody przykładowa):

if(my_add(a, b) == c){

Zostaje zaimplementowanie metody my_add.

1 użytkowników online, w tym zalogowanych: 0, gości: 1