挑7(练习用)

来源:互联网 发布:js qq在线客服插件 编辑:程序博客网 时间:2024/06/05 17:28

题目

   描述          输出7有关数字的个数,包括7的倍数,还有包含7的数字(如17,27,37…70,71,72,73…)的个数 输入 一个正整数N。(N不大于30000) 输出 不大于N的与7有关的数字个数,例如输入20,与7有关的数字包括7,14,17. 样例输入 20 样例输出 3

思路

  1. 由于只有30000个数,个位十位。。。。分别判断即可。
  2. 如果出现多于30000个数,那么用循环来代替即可。。。
  3. 如果要大数判断,那么需要特殊处理了,这里我就不写了,有兴趣的小伙伴写出来可以@我,谢啦

代码1(30000以内)

#include<iostream>using namespace std;int main() {    int n, result = 0;    cin>>n;    for (int i = 1; i <= n; i++) {        if(i%7==0 || i%10==7 || i/10%10==7 || i/100%10==7 || i/1000%10==7) result++;    }    cout<<result;    return 0;}

代码2

#include<iostream>using namespace std;int main(){    int n, left,result = 0;    cin>>n;    for (int i = 1; i <= n; ++i)    {        left=i;        if(left%7==0)//判断是否被7整除        {            result++;        }        else        {            while(left)//判断各个位上是否存在7            {                if(left%10==7)                {                    result++;                    break;                }                else                {                    left=left/10;                }            }        }    }    cout<<result;//输出结果    return 0;}
0 0