幸运数字
Time Limit: 1000MS
Memory Limit: 65536KB
Problem Description
我们定义幸运数字为只含有且必须同时含有 4 和 7 的数。例如:47, 747 是幸运数字,而 2333, 666, 457, 777 就不是幸运数字。
现在,bLue 想知道一个数是不是幸运数字,你能帮助他吗?
Input
输入数据有多组(数据组数不超过 100),到 EOF 结束。
每组输入为一行,包含一个非负整数 n,保证 n 在 int 范围内。
Output
对于每组数据,如果输入的数是幸运数字,则输出一行 "Yes",否则输出一行 "No"(输出内容均不包括引号)。
Example Input
40 74 747 1047 123
Example Output
No Yes Yes No No
#include<stdio.h>
int main(void){
int n, flag1, flag2, a, flag3, b;
while(~scanf("%d", &n))
{
flag1 = 0; flag2 = 0; flag3 = 1;
while(n / 10)
{
a = n % 10;
n = n / 10;
if(a == 4)
{
flag1 = 1;
}
else if(a == 7)
{
flag2 = 1;
}
else
{
flag3 = 0;
break;
}
}
b = n;
if(b == 4)
{
flag1 = 1;
}
else if(b == 7)
{
flag2 = 1;
}
else if(b != 4 && b != 7)
{
flag3 = 0;
}
if(flag3 == 0)
{
printf("No\n");
}
else
{
if(flag1 && flag2)
{
printf("Yes\n"); //注意这两个条件的先后顺序
}
else if(flag1 || flag2)
{
printf("No\n");
}
}
}
return 0;
}