معادله درجه دوم

سوال

سلام به همه مهندسین عزیز.

ببخشید اگه میشه کد برنامه زیر رو با جاوا برام بزنین و بهم بدین. خیلی سپاس گذارم.

سوال اینه که در ورودی کاربر بدون فاصله بین کاراکتر ها یه معادله درجه دوم استاندارد(یعنی بدون نیاز به ساده کردن یا …) به شما می دهد. جواب های معادله را بنویسید یا اگر جوابی نداشت NULL چاپ کنید.
Input :
X^2+2X+1
Output :

در حال بررسی 0
Sahar 4 سال 1 پاسخ 439 دیده شده 0

پاسخ ( ۱ )

  1. package forum;

    import java.util.Scanner;

    public class Moadele_darage2 {

    public static void main(String[] args) {
    Scanner reader=new Scanner(System.in);
    String str=reader.nextLine();
    int[] t=new int[3];
    int[] s=new int[3];
    int sum=0;
    double x,x1;

    for (int i=0;i<=9;i++) {
    if(str.startsWith(Integer.toString(i))) {
    t[0]=i;
    s[0]=1;
    }
    else if(str.startsWith(“x”)) {
    t[0]=1;
    s[0]=1;
    }
    else if(str.startsWith(“-“)) {
    s[0]=-1;
    str=str.substring(1, str.length());
    }
    if(str.indexOf(Integer.toString(i),4)==4||str.indexOf(Integer.toString(i),4)==5) {
    t[1]=i;
    }

    if(str.indexOf(Integer.toString(i),6)==6||str.indexOf(Integer.toString(i),6)==7||
    str.indexOf(Integer.toString(i),6)==8){
    t[2]=i;
    }

    }

    if(str.charAt(3)==’+’||str.charAt(4)==’+’) {
    s[1]=1;
    }
    else if(str.charAt(3)==’-‘||str.charAt(4)==’-‘) {
    s[1]=-1;
    }
    if(str.charAt(5)==’+’||str.charAt(6)==’+’||str.charAt(7)==’+’) {
    s[2]=1;
    }
    else if(str.charAt(5)==’-‘||str.charAt(6)==’-‘||str.charAt(7)==’-‘) {
    s[2]=-1;
    }
    t[0]*=s[0];
    t[1]*=s[1];
    t[2]*=s[2];
    sum=t[1]*t[1]-(4*t[0]*t[2]);
    if(sum>0) {
    x=(-t[1]+Math.sqrt(sum))/(2*t[0]);
    x1=(-t[1]-Math.sqrt(sum))/(2*t[0]);
    System.out.println(“x: “+x+” , “+x1);
    }
    if(sum==0) {
    x=-t[1]/(2*t[0]);
    System.out.println(“x: “+x);
    }
    if(sum<0) {
    System.out.println(“null”);
    }
    System.out.println();
    }

    }

ارسال یک پاسخ