C++语言:逢7过

题目:从1开始,遇到7的倍或者各位为7的数算一次,到N(0<N=10^7时共多少次?

思考:从一开始每个数字都要判断是否符合条件,并且每次判断都应该有两个条件,一是判断是否各位上有数字7,二是判断是否是7的倍数,

(1)函数部分:自定义函数首先应确保所判断数字为正数,再判断各位上是否有7,各位上应依次除以10,所以函数部分:

int pd(int kk){
    while(kk>0)
    {
        if(kk%10==7)
        return 1;
        kk=kk/10;
    }
    return 0;
}

(2)主体部分:判断是否为7的倍数,用sum统计判断的个数,再调用以上函数,所以主体部分:

int main()
{
    int n,sum=0,k=1;
    cin>>n;
    while(k<=n)
    {
        if(k%7==0)
        sum++;
        else if(pd(k)==1)
        sum++;
        k++;
    }
    cout<<sum<<endl;
    return 0;
}

完整代码:

#include<bits/stdc++.h>
using namespace std;
int pd(int kk){
    while(kk>0)
    {
        if(kk%10==7)
        return 1;
        kk=kk/10;
    }
    return 0;
}
int main()
{
    int n,sum=0,k=1;
    cin>>n;
    while(k<=n)
    {
        if(k%7==0)
        sum++;
        else if(pd(k)==1)
        sum++;
        k++;
    }
    cout<<sum<<endl;
    return 0;
}

考察的是函数的调用。



上一篇:Markdown小技巧


下一篇:c语言逢七过