写出求解一元二次方程的根的二分查找方法
package 第二周;
import java.util.Scanner;
public class erfenfa
{
public static void main(String[] args)
{
double x1 = 0.2f;
double x2 = 2f;
double mid =(x1+x2)/2;
if((Math.abs(f(x2)-f(x1))>0.000001))
{
if(isArea(x1, mid))
{
x2=mid;
f(x2);
}
if(isArea(mid,x2))
{
x1=mid;
f(x1);
}System.out.println(mid);
}
else if(f(mid)==0)
{
System.out.println(mid);
}
}
public static boolean isArea(double a, double b)
{
boolean result = true;
if(f(a) * f(b) > 0)
result = false;
else if(f(a) * f(b) < 0)
result = true;
return result;
}
public static double f(double x)
{
return x*x - 2*x +1;
}
}
写出求斐波那契数列的递归方法,并观察每一步的执行。
public class feibolaqi
{
public static int fib(int f)
{
if(f==1 || f==2)
{
return 1;
}
else
{
return fib(f-1)+fib(f-2);
}
}
public static void main(String[] args)
{
int num =10;
fib(num);
for(int i=1;i<=num;i++)
{
System.out.print(fib(i)+" ");
}
}
写出求解阶乘的递归方法
public class jiecheng
{
public static int factorial(int i)
{
if(i<1)
{
return 1;
}
else
return factorial(i-1)*i;
}
public static void main(String[] args)
{
int num=5;
factorial(num);
for(int i=0; i<num;i++)
{
int fact = factorial(i);
System.out.println(i+"的阶乘是:"+fact);
}
}
}