题目比较简单,主要是判断条件这块,一定要注意在奇数的位置和偶数的位置标记,若奇数位为奇数偶数位为偶数才能计数加一,否则都是跳过。
①接收数据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;}
如果会的话自己练一下两个判断条件的交换,如果不会就看看代码边看边学