[问题描述]
输出7 和7 的倍数,还有包含7 的数字例如(17,27,37,...,70,71,72,73,...)
[需求分析]
本演示程序用VC编写,求符合题意的数字。
【输入】 一个整数N。(N 不大于30000)
【输出】 从小到大排列的不大于N 的与7 有关的数字,每行一个。
【输入范例】20
【输出范例】7 14 17
[概要设计]
首先考虑输出是7的倍数的数,从1开始到小于输入的数,用数不断的整除7,输出7的倍数,然后考虑的是输出含有7的数,从个位开始,若余数为7可输出,依次十位数,百位数….
[详细设计]
#include <stdio.h>
int main()
{ int i,N,a;
scanf("%d",&N);
for (i = 1; i <= N; i++) // 从1开始选,一直到N结束
{ if (i % 7 == 0) //是7的倍数的输出
printf("%d"" ",i);
else //不是7的倍数的进行下面操作
{ int a = i;
while (a > 0)
{ if (a % 10 == 7) //输出含7的数
{ printf("%d""",i);
break; } a= a / 10; //求下一位数是否含7
} } }
return 0;
}
[测试结果]
输入20 输出七的倍数和含有七的数