华为OJ——(练习用)挑7

来源:互联网 发布:好身材的女明星 知乎 编辑:程序博客网 时间:2024/05/22 04:40

(练习用)挑7

题目描述

输出7有关数字的个数,包括7的倍数,还有包含7的数字(如172737...70717273...)的个数

输入描述:

一个正整数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;}

0 0
原创粉丝点击