题目如图,程序如下,程序一直出错,求解答
#include<bits/c++.h>
using namespace std;
int main(){
int m;
int k,ans=0;
cin>>m>>k;
if(m%19!=0 || m==0){
cout<<"NO";
return 0;
}
while(m/10!=0){
if(m%10==3) ans++;
m/=10;
}
if(ans==k) cout<<"YES";
else cout<<"NO";
return 0;
}
#include<iostream>
using namespace std;
int main()
{
int m;
int k;
cout << "请输入一个整数:" << endl;
cin >> m;
cout << "请输入1-5之间的一个数:" << endl;
cin >> k;
if (m % 19 == 0 && k * (m / 3) == m)
{
cout << "YES" << endl;
}
else
{
cout << "No" << endl;
}
}
这个难点就在于求3的个数,如果我们细心发现,会找到一个规律。
就是m/3*k=m的,你要不信有两个案列,第一个输出yes,第二个输出no.
这个规律把握住就好了.
加油
int main()
{
int m, k, ans = 0;
cin >> m >> k;
if (m % 19 != 0 || m == 0)
{
cout << "NO";
return 0;
}
int x;
while (m != 0) // while (m / 10 != 0) //
{
x = m % 10;
cout << x << endl;
if (m % 10 == 3)
ans++;
m /= 10;
}
if (ans == k)
cout << "YES";
else
cout << "NO";
return 0;
}
#include <iostream>
using namespace std;
int main(){
int m;
int k,ans=0;
cout << "please input two int value m (1 < m < 100000), k (1 < k < 5): ";
cin>>m>>k;
if (m <= 1 || m >= 100000)
{
cout << "NO\n";
return -1;
}
if (k <= 1 || k >= 5)
{
cout << "NO\n";
return -1;
}
if(m%19 != 0){
cout<<"NO\n";
return 0;
}
while(m != 0)
{
if (m%10 == 3)
ans++;
m /= 10;
}
if(ans==k)
cout<<"YES\n";
else
cout<<"NO\n";
return 0;
}