第一题:寻找三数的最大值和最小值
【问题描述】
编写一个程序,用户输入3整数,试找出其中的最大数和最小数
【样例输入】
1 2 78【样例输出】
78 1
思路:
较简单,思路见注释,此处略
public static void main(String[] args) {
//实例化Scanner对象用来接收用户数据
Scanner nc=new Scanner(System.in);
//接受三个用户传入的数据
int x=nc.nextInt();
int y=nc.nextInt();
int z=nc.nextInt();
//用max来接受x和y中的最大值,如果x>y将x赋值给max否则y赋值给max
int max=x>y?x:y;
//之后再用max和z进行比较,如果max>z值不变,否则将z赋值给max
max=max>z?max:z;
System.out.println(max);
//最小值同理,不写了
}
第二题:判断闰年平年
【问题描述】判断用户输入的年份是否为闰年。
闰年要求:如果年份可以被 4 整除而不能被 100 整除, 或者可以被 400 整除, 那么该年就是闰年。
提示:用户输入年份只为(1900-2200年)
思路:
1.创建Scnner实例化对象接受用户数据
2.判断用户输入数据是否为整形,为整形则程序继续,否则返回error程序结束
3.判断用户输入的整形数据是否在1900到2200之间
4.根据闰年条件,判断输入的年份是否为闰年
public static void main(String[] args) {
//接受用户数据,判断是否为整形,不是返回error
Scanner nc=new Scanner(System.in);
if(nc.hasNextInt()){
int a=nc.nextInt();
//判断输入的年份是否在1900-2200内,不在返回error
if(a>=1900&&a<=2200){
//对合法数据,利用公式判断闰年平年
if(a%4==0&&a%100!=0){
System.out.println(a+" is runnian");
} else if (a%400==0) {
System.out.println(a+" is runnian");
}else {
System.out.println(a+" is pingnian");
}
}else {
System.out.println("error");
}
}
else {
System.out.println("error");
}
}
第三题素数:
【问题描述】
用户输入数字n
程序判断n是否为素数
【样例输入】
5
【样例输出】5 is prime
【样例输入】
4
【样例输出】4 is not prime
思路:
见注释
public static void main(String[] args) {
//接受用户数据
Scanner nc = new Scanner(System.in);
int n = nc.nextInt();
//判断2---n-1内是否存在值可以被n整除,存在则n不为素数
for (int i = 2; i <n; i++) {
if(n%i==0){
System.out.println(n+" is not prime");
//找到任意一个数字可以被n整除,则n必不是素数,跳出循环
break;
}else if(i==n-1)//当i成功遍历到n-1时,且n%(n-1)!=0时,执行该语句。
//此时代表2---n-1内无任何数可以被n整除,所以n为素数
//有些同学会在这里直接用else,经典的错误标准的零分,分析下
//例如数字21并不是一个质数,如果使用else的情况下,21%2!=0,所以会直接执行语句 21 is prime
//总结,直接使用else,只要当n%i不等零的时候便会输出n is prime;
{
System.out.println(n+" is prime");
}
}
//特殊情况,把2单拉出来,聪明的小伙伴想想为什么
if(n==2){
System.out.println(n+" is prime");
}
}