(练习用)挑7
题目描述
输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数
输入描述:
一个正整数N。(N不大于30000)
输出描述:
不大于N的与7有关的数字个数,例如输入20,与7有关的数字包括7,14,17.
输入例子:
20
输出例子:
3
解答代码:
#include<iostream>
#include<cstring>
#include<string>
#include <cstdlib>
#include<sstream>
#include<algorithm>
using namespace std;
string converToString(double x)
{
ostringstream o;
if(o<<x)
return o.str();
return "conversion error";
}
int main()
{
int i,j,n,count7=0;
string s;
int index=0;
while(cin>>n)
{
count7=0;
for(i=1; i<=n; i++)
{
s=converToString(i);
index=s.find('7');
if(i%7==0)
{
count7++;
continue;
}
if(index>=0 && index<=s.length())
count7++;
}
cout<<count7<<endl;
}
return 0;
}