
题目比较简单,主要是判断条件这块,一定要注意在奇数的位置和偶数的位置标记,若奇数位为奇数偶数位为偶数才能计数加一,否则都是跳过。
①接收数据n
②循环n次,拆解n,每次拆解记录ans++
③拆解n为若干次x,若x取余2等于1并且ans%2==1(用相反的方法也可以)若x取余2等于0并且ans%2==0,则记录count++
④输出count
代码如下👇
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n=scan.nextInt();
int count=0;
for (int i = 1; i < n; i++) {
if (px1(i)) {
count++;
}
}
System.out.println(count);
scan.close();
}
public static boolean px1(int s) {
int ans=1;
while (s!=0) {
int x=s%10;
if (ans%2==1) {
if (x%2==0) {
return false;
}
}else {
if (x%2==1) {
return false;
}
}
s/=10;
ans++;
}
return true;
}
如果会的话自己练一下两个判断条件的交换,如果不会就看看代码边看边学