CCF小白刷题之路---201912-1 报数(C/C++ 100分)

一、题目描述

在这里插入图片描述在这里插入图片描述

二、代码实现

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
//判断x是否为7的倍数
bool seven(int x)
{
    
    
    while(x)
    {
    
    
        if(x % 10 ==7) return true;
        x /= 10;
    }
    return false;
}

int main()
{
    
    
    int n;
    cin>>n;
    //step用来记录目前已经数了多少个数(不包括要跳过的数)
    int step = 0;
    int num[4] = {
    
    0};
    //i用来记录目前已经数了多少个数(包括要跳过的数)
    int i = 0;
    while(step<n)
    {
    
    
        int index = i + 1;
        //如果数字含有7或者是7的倍数,则跳过,对于数组+1记录跳过的次数
        if(index % 7 ==0 || seven(index))
        {
    
    
            num[i%4]++;
            i++;
        }
        else
        {
    
    
            step++;
            i++;
        }
    }
    for(int j=0;j<4;j++)
    {
    
    
        cout<<num[j]<<endl;
    }
    return 0;
}

更多CCFCSP认证真题详解,请点击>>CCFCSP历年认证考试真题解答汇总

猜你喜欢

转载自blog.csdn.net/qq_44528283/article/details/112963144
今日推荐