CSP 201912-1 报数

201912-1

总结

//int->string
auto s = to_string(n);//C++11

//find()
if(find(s.begin(), s.end(), '7') != s.end()){}
//string->int
int a = std::stoi(s);   //c++11 stol(long) stof(float) stod(double)
//vector初始化
vector<int> res(4);//包含四个元素,默认全部为0
vector<int> res(4, 9);//包含四个元素,全部为9

//取出res中的每个元素
for(int x: res){}

代码一

#include <iostream>
using namespace std;

int check(int i)
{
    if(i % 7 == 0) 
    {
        return 0;
    }
    while(i)
    {
        if(i % 10 == 7)
        {
            return 0;
        }
        i /= 10;
    }
    return 1;
}
int main ()
{
    int res[4] = {0};
    int n;
    cin >> n;
    int num = 0;
    for(int i=1; ;i++)
    {
        if(check(i))
        {
            num++;
            if(num == n)
            {       
                break;
            }
        }
        else
        {
            res[(i - 1) % 4]++;
        }
    }
    for(int i=0; i<4; i++)
    {
        cout << res[i] << endl; 
    } 
    return 0;
}

代码二

#include <iostream>
#include <vector>
#include <cstring>
#include <algorithm>
using namespace std;

int shouldskip(int n)
{
    if(n % 7 == 0)
    {
        return 1;
    }

    string s = to_string(n);

    if(find(s.begin(), s.end(), '7') != s.end())
    {
        return 1;
    }
    return 0;
} 
int main ()
{
    int n;
    cin >> n;
    vector<int> res(4);
    int i = 1;
    while(n)
    {
        if(shouldskip(i))
        {
            ++res[(i - 1) % 4];
        }
        else
        {
            n--;
        }
        i++;
    }
    for(int x: res)
    {
        cout << x << endl;
    }
    return 0;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注