每日一题:华为初级题库——挑7
<题目要求>
输入一个正整数N(N不大于3000),输出小于N,且与7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数。
思路:主要讨论能否整除7的倍数,或者逐位对10求余,观察其是否为7;对1到N的数进行遍历,进行以上讨论,用一个变量存储,满足要求数字的个数。
#include <iostream> using namespace std; int main() { int n; int m; int num=0; cin>>n; for(int i=1; i<=n; i++) { if(i%7==0) { num++; } else { m=i; while(m!=0) { if(m%10==7) { num++; break; } else { m=m/10; } } } } cout<<num<<endl; return 0; }