题目:统计特殊年份
语言:java
语法错误:一个方法名前面只能有一个方法返回类型,例如void boolean是错误的表达;
新建一个数组语法格式为:int[] 数组名=new 数组名[数组长度];!!!
if(函数()):if本身自带一个括号,函数本身也自带一个括号,写的太快容易被遗忘
变量不能被重定义。例如 int year;
在同一个类中就不能被再次定义了。!!!
逻辑:主函数输入年份,方法里面定义可以判断各个年份的方法。方法主要实现为:取年份上各个位的数。有两种取法:
第一种为先取余,再除。(这种可以保证后面的数不变)
以2021为例:
千位:2021/1000;百位:2021%1000/100;十位:2021%100/10;十位:2021%10
这种方法的实质:除以10的几次方,就是取这个数的第几位,取余是取余的数的第几位,取余是取被除后的数的第几位
第二种是先除在再取余。(这种可以保证前面的不变)
以2021为例:
千位:2021/1000;百位:2021/100%10;十位:2021/10%10;个位:2021%10;
这种方法的实质:将每一位变成个位取余。
这两种方法的实现是一样的,只不过取的方向不一样。
代码展示:
import java.util.*;
public class Main{
static boolean judge(int x){
int a=x/1000;
int b=x%1000/100;
int c=x%100/10;
int d=x%10;
if(a==c&&d-b==1){
return true;
}
return false;
}
public static void main(String[] args){
int[] year=new int[5];
int count=0;
Scanner sc=new Scanner(System.in);
for(int i=0;i<5;i++){
year[i]=sc.nextInt();
if(judge(year[i])){
count=count+1;
}
}
System.out.println(count);
}
}
括展思考:与统计特殊数字一样,统计特殊年份,都是要取到每一位数字;
收获:1.做这种题的固定模板
2.Scanner sc=new Scanner(System.in);
int[] year=new int[4];
for(int i=0;i<n;i++){
year[i]=sc.nextInt();
}
这种可以节省空间。