7-14 含8的数字的个数 (5 分)
现代人对数字越来越讲究,都喜欢含有8的数字。现要你编程计算a至b之间的含有数字8的数的个数(比如181,88,8,28这些数都含有数字8,而21,45,49等没有含有数字8)。
输入格式:
在一行中输入两个正整数a和b,用一个空格隔开。0<a<=b<100000。
输出格式:
输出a和b之间含有8的数的个数。包括a和b。
输入样例:
1 30
输出样例:
3
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
int solve(int n){
int sum=0;
for(int i=1;i<=n;i++){
int a=i;
while(a){
if((a%10)==8){
sum++;
break;
}
a/=10;//除十取模,即判断每位上的数字是否为八。暴力解法。
}
}
return sum;
}
int main(){
int n,m;
cin>>n>>m;
cout<<solve(m)-solve(n-1)<<endl;
}
尤其要注意solve函数中while()中为a而不能是1,得限定a>0!