输出7和7的倍数,还有包含7的数字

卡壳环节:如何将整数按位拆分

int k=0;
while(n>0){
    a[k]=n%10;
    n/=10;
    k++;
}
/*
输出7和7的倍数,还有包含7的数字例如(17,27,37...70,71,72,73...)
输入
一个整数N。(N不大于30000)29999
输出
统计出不大于N的与7有关的数字的个数。如20以内与7有关的数为7、14、17共3个。
*/
#include <stdio.h>
#include<string.h>
bool contain(int n){
    bool match=false;
    int temp;
    while(n>0){
        temp=n%10;
        if(temp==7){
            match=true;
        }
        n=n/10;
    }
    return match;
}
void func(int n){
    int i,k=0;
    for(i=7;i<=n;i++){
        if(i%7==0){
            printf("%d ",i);
            k++;
        }else if(contain(i)){
            printf("%d ",i);
            k++;
        }
    }
    printf("number=%d",k);
}
int main()
{
    int n,k;
    scanf("%d",&n);
    func(n);
    return 0;
}

 

posted @ 2019-11-18 15:35  dreamy_java  阅读(3122)  评论(0编辑  收藏  举报