Java日志第50天 2020.8.26
例4.6 编写一个程序,用来求两个整数或3个整数中的最大数。如果输入两个整数,程序就输出这两个整数中的最大数,如果输入3个整数,程序就输出这3个整数中的最大数。
public class Demo4_6 {
public static void main(String[] args) {
int a=8, b=-12, c=27;
System.out.println("max(a, b, c) = "+max(a,b,c));
System.out.println("max(a, b) = "+max(a,b));
}
public static int max(int a, int b, int c) {
if(b>a)
a = b;
if (c>a)
a = c;
return a;
}
public static int max(int a, int b) {
return a > b ? a : b;
}
}
例4.7 将例4.6程序改为通过函数模板来实现
例4.8 求2个或3个正整数中的最大数,用带有默认参数的函数实现
Java不能设置默认参数,只能通过重载来实现。
例4.9 用弦截法求方程f(x)=x3-5x2+16x-80=0的根
import java.util.Scanner;
public class Demo4_9 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double x1, x2, f1, f2, x;
do {
System.out.print("Input x1, x2:");
x1 = sc.nextDouble();
x2 = sc.nextDouble();
f1 = f(x1);
f2 = f(x2);
} while (f1*f2>=0);
x = root(x1, x2);
System.out.println("A root of equation is "+x);
}
private static double f(double x) {
double y;
y = x*x*x-5*x*x+16*x-80;
return y;
}
private static double xpoint(double x1,double x2) {
double y;
y = (x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
return y;
}
private static double root(double x1, double x2) {
double x,y,y1;
y1=f(x1);
do {
x = xpoint(x1,x2);
y = f(x);
if (y*y1>0){
y1 = y;
x1 = x;
} else
x2 = x;
} while (Math.abs(y)>=0.00001);
return x;
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南