描述
输入两个正整数 m 和 k,其中 1 < m < 100000,1 < k < 5 ,判断 m 能否被3 整除,且恰好含有 k 个 7,如果满足条件,则输出 YES,否则,输出 NO。 例如,输入:768 1 满足条件,输出 YES。如果输入:7937 2 尽管有 2 个 7,但不能被 3 整除,也不满足条件,应输出 N
输入
m 和 k 的值,中间用单个空格间隔。
输出
满足条件时输出 YES,不满足时输出 N
#include<stdio.h>
int main()
{
int m,k;
scanf("%d %d",&m,&k);
if(1 < m &&m< 100000 && 1 < k &&k< 5 ) //控制输入数据的范围
{
if(m%3= =0) //判断能否被3整除
{
int n=m;
int a=0;
int i=0;
while(n!=0)
{
a=n%10;
if(a==7) i++;
n=n/10;
} //判断每个数,在判断后消除末尾数
if(i==k) printf("YES\n");
else printf("NO\n");
}
else printf("NO\n");
}
else printf(“请输入数字范围是1 < m < 100000 1 < k < 5 的数”);
return 0;
}
如果有5<n<7这种的要换成5<n&&n<7否则计算机无法正确读取。
上一次的里面如果用 || 会导致只要有一种情况满足就会执行循环;现改用 && 则必须都同时满足才能执行。
加粗样式