P1286 含k个3的数
描述
输入两个正整数m和k,其中1<m<100000,1<k<5 ,判断m 能否被19整除,且恰好含有k个3,如果满足条件,则输出YES,否则,输出NO。 例如,输入:43833 3,满足条件,输出YES。如果输入:39331 3,尽管有3个3,但不能被19整除,也不满足条件,应输出NO。
格式
输入格式
m 和 k 的值,中间用单个空格间隔。
输出格式
满足条件时输出 YES,不满足时输出 NO。
样例
输入样例
43833 3
输出样例
YES
限制
时间限制: 1000 ms
内存限制: 65536 KB
代码
这是初始代码,只能得90分
#include<iostream>
#include<math.h>
#include<string.h>
using namespace std;
int main()
{
int m,k,l;
int i,t=0;
cin>>m>>k;
while(m!=0)
{
i=m%10;
m/=10;
if(i==3)
{
t++;//3的个数
}
}
if(t==k&&m%19==0)
{
cout<<"YES"<<endl;
}
else
{
cout<<"NO"<<endl;
}
return 0;
}
下面代码是可以AC的
#include<iostream>
#include<math.h>
#include<string.h>
using namespace std;
int main()
{
int m,k,n;
int i,t=0;
cin>>m>>k;
n=m;
while(n>0)
{
i=n%10;
if(i==3)
{
t++;//3的个数
}
n/=10;
}
if(t==k&&m%19==0)
{
cout<<"YES"<<endl;
}
else
{
cout<<"NO"<<endl;
}
return 0;
}