输出7和7的倍数,还有包含7的数字例如(17,27,37...70,71,72,73...)。

【输入】一个整数 N。(N不大于30000)

【输出】从小到大排列的不大于N的与7有关的数字,每行一个。

【输入范例】20

【输出范例】7   14  17

 

程序代码:

#include<stdio.h>

int main()

{

    int N,i,m,a[5];      //N为输入的数,m是中间变量,数组a[]用来存储输入的数的每一位数

    scanf("%d",&N);      //输入N

    for(i=7;i<=N;i++)    //因为最小为7,所以从7开始遍历

    {            

       if(i%7==0)        //判断,如果是7的倍数,就输出

       {

           printf("%d\n",i);    //输出7的倍数

      }

m=i;           //如果i不是7的倍数,将i的值赋给m

       for(int j=0;j<5;j++)     //取该数的每一位,因为输入的数最大为5位数,所以j的取值是从0到5

       {

           a[j]=m%10;    //数组a[]用来存储输入的数的每一位数,首先用m%10来对该数进行取余

           m=m/10;           //然后用m/10来进行取商

           if((i%7!=0)&&(a[j]==7))     //判断,如果不是7的倍数并且含有7,就输出

           {

              printf("%d\n",i); //输出

          }

       }

    }

    return 0;

}