题目描述
如果一个数字的十进制表示中有7,我们就认为他是幸运数字。
输入两个整数L, R(1<=L<=R<=100000)
输出所有满足L<=n<=R的幸运数字n。
从小到大输出所有幸运数字,一行一个。
特别注意如果区间内没有任何一个幸运数字,输出None
样例中第一个查询:1 3 1 2 表示从第1行到第3行,从第1列到第2列,对应的子矩阵是:
1 2
5 6
9 10
求和等于33
输入格式
一行两个整数L, R,其中1≤L≤R≤100000。
输出格式
从小到大输出所有幸运数字,一行一个。 特别注意如果区间内没有任何一个幸运数字,输出None
输入样例
88 111
输出样例
97
107
样例解释
88和111之间仅有97,107这两个数包含7,因此输出这两个数。
数据范围
对于10%的数据,1≤L≤R≤200; 对于100%的数据,1≤L≤R≤100000;
解题思路
定义一个返回值为 bool 的 judge 函数,判断输入的 x 是否为幸运数。如果是则返回 true ,否则返回 false 。
从 L 到 R 枚举所有数字,如果是幸运数字,则输出,同时做计数。
如果一个幸运数字都没有,则输出 None 。
Code
#include <bits/stdc++.h>
using namespace std;
long long l,r;
bool chk(int i){
int t;
while(i!=0){
t=i%10;
if(t==7)return true;
i/=10;
}
return false;
}
int main(){
long long s=0;
cin>>l>>r;
for(int i=l;i<=r;i++)
if(chk(i)){cout<<i<<endl;s++;}
if(s==0)cout<<"None";
return 0;
}