题目 E: 敲7(多实例测试)
时间限制: 1 Sec 内存限制: 128 MB提交: 57 解决: 19
[ 提交][ 状态][ 论坛]
题目描述
输出7和7的倍数,还有包含7的数字例如(17,27,37...70,71,72,73...)
输入
首先输入一个整数t,表示有t组数据。
然后有t行,每行一个整数N。(N不大于30000)
输出
对于每组数据 ,输出从小到大排列的不大于N的与7有关的数字。每组数据占一行,每个数字后面有一个空格;
样例输入
2 20 30
样例输出
7 14 17 7 14 17 21 27 28
提示
答案
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int
fac(
int
i) //自定义函数判断这个数是否有7;
{
int
c,a=0;
while
(i>0)
{
c=i%10;
if
(c==7)
{
a++;
break
;
}
i=i/10;
}
return
a;
}
int
main()
{
int
n,a,i;
scanf
(
"%d"
,&n);
while
(n--)
{
scanf
(
"%d"
,&a);
for
(i=1;i<=a;i++)
{
if
(i%7==0) //判断是否是7的倍数。
printf
(
"%d "
,i);
else
{
if
(fac(i)!=0) //将数传递到自定义函数中。
printf
(
"%d "
,i);
}
}
printf
(
"\n"
);
}
return
0;
}
/**************************************************************
Problem: 1379
User: 141210145
Language: C
Result: 正确
Time:16 ms
Memory:964 kb
****************************************************************/