Witam! Otóż mam sobie program, który ma coś liczyć (Nie potrafię tego wytłumaczyć, można to wyczytać z kodu)... I nie do końca poprawnie działa... Bo gdy np. Daje liczby 45 i 5 (To dzielenie)( ma mi znaleźć liczbę, przez którą trzeba podzielić/pomnożyć, żeby wyszła druga liczba). To wynik dostaje 8 :V. Lub gdy daje 40 i 5, to wynik dostaje 7. Itd... Sprawdzałem tylko do 35 i 5, bo już wiedziałem, że dalej też nie będzie działać... Dlaczego tak jest i czy da się temu zaradzić?
Tu kod:
import java.util.*;
import java.io.*;
public class Main {
static long numbers[] = new long[10000000];
static byte wybor;
static Scanner scan = new Scanner(System.in);
public static void main(String[] args)
{
for(int i=0; i<10000000; i++)
{
numbers[i] = i;
}
spr();
}
public static void error()
{
System.out.println("Blad! pierwsza liczba nie moze sie rownac drugiej liczbie!");
}
public static void spr()
{
try{
Thread.sleep(3000);
}
catch(InterruptedException e){
e.printStackTrace();
}
for(int i=0; i<100; i++)
{
System.out.println(" ");
}
System.out.println("Wybierz czy chcesz: ");
System.out.println("1. Mnożyć ");
System.out.println("2. Dzielić ");
wybor = scan.nextByte();
switch (wybor)
{
case 1:
{
for(int i=0; i<100; i++)
{
System.out.println(" ");
}
System.out.println("(Podaj pierwsza liczbe)");
int userFirstNumber = scan.nextInt();
System.out.println("(Podaj druga liczbe)");
int userSecondNumber = scan.nextInt();
for(int i = 0; i<10000000; i++)
{
if(userFirstNumber*numbers[i] == userSecondNumber)
{
System.out.println("Liczba przez którą się to mnozy, to: "+numbers[i]);
spr();
break;
}
else if(numbers[i]==9999999)
{
System.out.println("Przykro mi, nie znaleziono pasującej liczby");
spr();
}
}
break;
}
case 2:
{
for(int i=0; i<100; i++)
{
System.out.println(" ");
}
System.out.println("(Podaj pierwsza liczbe)");
int userFirstNumber = scan.nextInt();
System.out.println("(Podaj druga liczbe)");
int userSecondNumber = scan.nextInt();
if(userFirstNumber==userSecondNumber)
{
error();
}
for(int i = 1; i<10000000; i++)
{
if(userFirstNumber/numbers[i] == userSecondNumber)
{
System.out.println("Liczba przez którą się to dzieli, to: "+numbers[i]);
spr();
break;
}
else if(numbers[i]==9999999)
{
System.out.println("Przykro mi, nie znaleziono pasującej liczby");
spr();
}
}
break;
}
}
}
}