生活中我们会面临许许多多的选择,有些选择是我们必须要面对的,正如我们在编程里面一样,也要做选择,哈哈哈哈!下面我就来说一下一些关于选择结构的习题吧!
思路分析:这道题是求一元二次方程的根 ,题目中也已经给出了计算方法,我们只需按照流程来就行,具体来看。
第一步:因为题目中有a,b,c,所以我们先创建三个变量a,b,c,然后提示用户输入a,b,c;
第二步:因为题目本身要求就是一元二次方程,所以这里我们就不用考虑分母(我把分母判断的那一种情况给注释掉了)。创建一个变量存放判别式的值,然后用if语句判断判别式和0的大小情况就可以了;
第三步:编写代码。
import java.util.*;
public class Demo03_01{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a,b,c: ");
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
/*if(a == 0){
if(b == 0){
System.out.println("此方程无意义");
}else{
double x = -c / b;
System.out.println("The equation has one root " + x);
}
}*/
double m = b * b - 4 * a * c;//定义一个变量存放根的判别式
if(m > 0){
double x1 = (-b + Math.pow(m,0.5)) / (2 * a);
double x2 = (-b - Math.pow(m,0.5)) / (2 * a);
System.out.println("The equation has two roots " + x1 + " and " + x2);
}else if(m == 0){
double x = (-b + Math.pow(m,0.5)) / (2 * a);
System.out.println("The equation has one root " + x);
}else{
System.out.println("The equation has no real roots");
}
}
}
运行结果:
Enter a,b,c: 1.0 3 1
The equation has two roots -0.3819660112501051 and -2.618033988749895
Enter a,b,c: 1 2.0 1
The equation has one root -1.0
Enter a,b,c: 1 2 3
The equation has no real roots
思路分析:这道题是利用克莱姆法则解线性方程组,具体计算方法题目中也给出了,具体来看。
第一步:创建a,b,c,d,e,f,提示用户输入a,b,c,d,e,f;
第二步:创建一个变量存放分母ad-bc的值,然后判断分母是否为0,再进行计算;
第三步:编写代码。
import java.util.*;
public class Demo03_02{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a, b, c, d, e, f: ");
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
double d = scanner.nextDouble();
double e = scanner.nextDouble();
double f = scanner.nextDouble();
double m = a * d - b * c;//定义一个变量,存放分母
if(m == 0) {
System.out.println("The equation has no solution");
}
else{
double x = (e * d - b * f) / m;
double y = (a * f - e * c) / m;
System.out.println("x is " + x + " and y is " + y);
}
}
}
运行结果:
Enter a, b, c, d, e, f: 9.0 4.0 3.0 -5.0 -6.0 -21.0
x is -2.0 and y is 3.0
Enter a, b, c, d, e, f: 1.0 2.0 2.0 4.0 4.0 5.0
The equation has no solution
思路分析:这道题提示用户输入代表今天日期的数字,然后再输入一个今天之后的天数,最后显示出来这一天是星期几,具体来看吧。
第一步:创建两个变量,一个表示用户输入“今天日期代表的数字”,另一个存放用户输入的“今天之后的天数”;
第二步:再创建一个变量表示将来的那一天是星期几;
第三步:创建两个字符串具体来表示今天和将来的那一天具体是星期几;
第四步:用if判断来表示今天和将来的那一天所有的情况,,具体判断见代码;
第五步:编写代码。
import java.util.*;
public class Demo03_03{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
//输入今天的天数
System.out.print("Enter today's day:");
int today = scanner.nextInt();
//输入用户想要知道的后面的天数
System.out.print("Enter the number of days elapsed since today:");
int future = scanner.nextInt();
int futureDay = (today + future) % 7;//今天的天数+后面多少天的天数之和对7取余就是那一天的星期
//将星期用字符串表示
String todayStr = "";//今天的星期
String futureDayStr = "";//未来的星期
//今天的星期,有7种情况
if(today==0){
todayStr = "Sunday";
}else if(today==1){
todayStr = "Monday";
}else if(today==2){
todayStr = "Tuesday";
}else if(today==3){
todayStr = "Wednesday";
}else if(today==4){
todayStr = "Thursday";
}else if(today==5){
todayStr = "Friday";
}else if(today==6){
todayStr = "Saturday";
}
//未来的星期,也是7种情况
if(futureDay==0){
futureDayStr = "Sunday";
}else if(futureDay==1){
futureDayStr = "Monday";
}else if(futureDay==2){
futureDayStr = "Tuesday";
}else if(futureDay==3){
futureDayStr = "Wednesday";
}else if(futureDay==4){
futureDayStr = "Thursday";
}else if(futureDay==5){
futureDayStr = "Friday";
}else if(futureDay==6){
futureDayStr = "Saturday";
}
System.out.println("today is " + todayStr + " and " + " the future day is " + futureDayStr);
}
}
运行结果:
Enter today's day:1
Enter the number of days elapsed since today:3
today is Monday and the future day is Thursday
Enter today's day:0
Enter the number of days elapsed since today:31
today is Sunday and the future day is Wednesday
思路分析:针对这道题来说,很简单,只需判断个位数字和百位数字是否相等就可以了,这种方法我在代码中注释掉了。我还写了另外一种方法,可以判断Long类型长度的数字,用到了循环,这里不多强调,后面循环再说。
第一步:创建一个变量num存放用户输入的数字;
第二步:用num%10分出个位,num / 100分出百位,相比较就行。
第三步:编写代码。
import java.util.*;
public class Demo03_04{
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a integer: ");
long num = scanner.nextLong();
long temp1 = num;
long temp2 = num;
long sum = 0;
/*
if((num%10)==(num/100)){
System.out.println(num + " is a palindrome.");
}else{
System.out.println(num + " is not a palindrome.");
}
*/
int count = 0;
while(num != 0){
num /= 10;
count++;
}
for(int i = 1;i <= count;i++){
sum = sum * 10 + temp1 % 10;
temp1=temp1/10;
}
if(sum==temp2){
System.out.println(temp2 + " is a palindrome.");
}else{
System.out.println(temp2 + " is not a palindrome.");
}
}
}
运行结果:
Enter a integer: 121
121 is a palindrome.
Enter a integer: 123
123 is not a palindrome.