利用迭代法求正数的平方根。x0=a/2;
输入格式:
要求,在一行输入实数a(a>0)和eps(eps>0)。
输出格式:
输出平方根,保留4位小数及迭代次数。
输入样例:
在这里给出一组输入。例如:
7.8 0.01
输出样例:
在这里给出相应的输出。例如:
作者: *聪 单位: 哈尔滨师范大学 时间限制: 400 ms 内存限制: 64 MB 代码长度限制: 16 KB2.7949 3
1 import java.util.Scanner; 2 public class Main { 3 public static void main(String[] args) { 4 Scanner sc=new Scanner(System.in); 5 double a=sc.nextDouble(); 6 double eps=sc.nextDouble(); 7 int sum=1; 8 double temp=a/2,item; 9 item=0.5*temp+0.5*(a/temp); 10 while(Math.abs(item-temp)>=eps) { 11 temp=item; 12 item=0.5*temp+0.5*(a/temp); 13 sum++; 14 } 15 double k; 16 k=item*0.5+temp*0.5; 17 System.out.printf("%.4f %d",k,sum); 18 } 19 }
自己一开始没写出来。参考了别人的写法(待补充