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;
}

考察的是函数的调用。


                
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值