Hallo, das hier ist das erste Mal dass ich in ein Programmierforum poste, daher entschuldige ich mich gleich mal für den Fall, sollte ich was falsch gemacht haben
.
So nun zu meiner Frage: Und zwar bin ich gerade ein Programm am schreiben was mir zu einer eingegebenen Zahl eine Funktion sucht(Beispiel ich habe die Zahl : 6761636 und ich will wissen ob es eine Funktion der Form ax^n dafür gibt).
Da ich aber mit beliebig großen Zahlen arbeiten möchte, kann ich natürlich die Datentypen int,double etc nicht verwenden.
Meine Idee war es dafür die Klasse BigInteger zu benutzen, welche allerdings nur eine Referenzvariable generiert.
Meine Frage ist jetzt gibt es eine Möglichkeit einen BigInteger Wert irgendwie in einer Schleife zu benutzen?
Das gesuchte Problem findet ihr im Codeauschnitt 63-104..
Vielen Dank für eure Hilfe
So nun zu meiner Frage: Und zwar bin ich gerade ein Programm am schreiben was mir zu einer eingegebenen Zahl eine Funktion sucht(Beispiel ich habe die Zahl : 6761636 und ich will wissen ob es eine Funktion der Form ax^n dafür gibt).
Da ich aber mit beliebig großen Zahlen arbeiten möchte, kann ich natürlich die Datentypen int,double etc nicht verwenden.
Meine Idee war es dafür die Klasse BigInteger zu benutzen, welche allerdings nur eine Referenzvariable generiert.
Meine Frage ist jetzt gibt es eine Möglichkeit einen BigInteger Wert irgendwie in einer Schleife zu benutzen?
Das gesuchte Problem findet ihr im Codeauschnitt 63-104..
Vielen Dank für eure Hilfe
Java:
import java.util.Scanner;
import java.math.BigInteger;
public class Calc
{
// Variablenzuweisung
private double [] kk= new double [100];
private double a,b,c,d,e;
private double n ;
private int suchzahl;
private double i;
private double suchzahlEnde;
private double x,z,y,w;
private double konstante_1,ergebnis;
private String s;
public void main(){
System.out.print("Rechner (1) ");
System.out.print("Suchzahl (2) ");
System.out.print("Potenzsuche (3) ");
Scanner scan = new Scanner (System.in);
int eingabe=scan.nextInt();
if(eingabe == 1){
System.out.print("Rechner ");
System.out.print("Erste Zahl ");
Scanner scan_3 = new Scanner (System.in);
System.out.print("Operator ");
s=scan.next();
System.out.print("Zweite Zahl ");
y=scan.nextDouble();
if (s.equals("+")){
z=x+y;
}
if (s.equals("-")){
z=x-y;
}if (s.equals("*")|| s.equals("x")){
z=x*y;
}
if (s.equals("/")|| s.equals(":")){
z=x/y;
}
System.out.print("Ergebnis= " + z);
}
if (eingabe== 2){
System.out.println("Suchzahl eingeben: ");
//Scanner scan_2 = new Scanner (System.in);
//suchzahl=scan.nextInt();
//BigInteger big = new BigInteger();
//suchzahl=big.add(suchzahl,0);
Scanner scan_2 = new Scanner(System.in);
BigInteger big = new BigInteger(scan_2.next());
}
if (eingabe== 3){
System.out.println("Suchzahl eingeben: ");
//Scanner scan_2 = new Scanner (System.in);
//suchzahl=scan.nextInt();
//BigInteger big = new BigInteger();
//suchzahl=big.add(suchzahl,0);
Scanner scan_2 = new Scanner(System.in);
BigInteger big = new BigInteger(scan_2.next());
int basisStart = 1;
int basisEnde = 100;
int expStart = 1;
int expEnde = 10;
int konstanteStart = 1;
int konstanteEnde = 100;
double suchzahlEnde= suchzahl+100;
for ( i = suchzahl; suchzahl <= suchzahl+100; suchzahl++) {
System.out.println("Suchzahl: " + big);
for (int konstante = konstanteStart; konstante <= konstanteEnde; konstante++) {
for (int basis = basisStart; basis <= basisEnde; basis++) {
for (int exp = expStart; exp <= expEnde; exp++) {
int potenz = (int) Math.pow(basis, exp);
int ergebnis = potenz * konstante;
if (ergebnis == suchzahl) {
System.out.println(potenz + "___ " + konstante
+ "___ " + "Basis: " + basis + "___ "
+ "Exponent: " + exp + "___ " + "Positiv");
}
}
}
}
}
}
}
public void Wurzel(double zahl_wurzel)
{
double a=zahl_wurzel;
double b=1;
//Satz des Heron wird 1000 mal durchgeführt ??? Methode finden um solange durchzuführen bis a = b ist
for(i=1; i<1000; i++){
b=(a+b)/2;
a=zahl_wurzel/b;
}
System.out.println(a);
}
}