题目:从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;
}
考察的是函数的调用。