华为OJ平台题目:(练习用)挑7

时间:2022-03-16 11:27:16

描述

输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37...70,71,72,73...)的个数

知识点 循环
运行时间限制 0M
内存限制 0
输入

一个正整数N。(N不大于30000)

输出

不大于N的与7有关的数字个数,例如输入20,与7有关的数字包括7,14,17.

样例输入 20
样例输出 3
#include <iostream>

using namespace std;

int main()
{
int N = 0, i = 0;
int count = 0, temp = 0;
bool flag = false;

while(cin >> N)
{
count = 0;
for(i = 7; i <= N; i++)
{
/* 判断该数据有没有包含7 */
temp = i;
flag = false;
if(temp % 7 == 0)
{
flag = true;
}
/* 如果temp不是7的倍数,再判断有没有哪一位有7 */
if(flag == false)
{
while(temp)
{
if(temp%10 == 7)
{
flag = true;
break;
}
temp = temp / 10;
}
}

if(flag == true)
{
count++;
}
}
cout << count << endl;
}
return 0;
}