P10424(洛谷题面

题目

题目描述:

一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位……)上的数字是奇数,偶数位(十位、千位、十万位……)上的数字是偶数,我们就称之为“好数”。

给定一个正整数 NN,请计算从 11NN 一共有多少个好数。

输入格式:

一个整数 NN

输出格式:

一个整数代表答案。

数据范围与说明:

样例 1 解释

2424 以内的好数有 1,3,5,7,9,21,231,3,5,7,9,21,23,一共 77 个。

数据规模与约定

  • 对于 10%10\% 的测试数据,1N1001 \leq N \le 100
  • 对于全部的测试数据,1N1071 \le N \leq 10^7

输入输出样例 #1

输入:

1
24

输出:

1
7

输入输出样例 #2

输入:

1
2024

输出:

1
150

题意

简述:

一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位……)上的数字是奇数,偶数位(十位、千位、十万位……)上的数字是偶数,我们就称之为“好数”。

给定一个正整数 NN,请计算从 11NN 一共有多少个好数。

代码

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include<bits/stdc++.h>
using namespace std;
bool check(int x){
int j=1;
while(x){
int i=x%10;
if(j%2==1){
if(i%2==0) return false;
}else{
if(i%2==1) return false;
}

x/=10;
j++;
}
return true;
}


int main(){
int n,count=0;
cin>>n;
for(int i=1;i<=n;i++){
if(check(i)){
count++;
}
}
cout<<count;
return 0;
}