刚学没多久,写的不是很好,细节也不是很好,但我思路没问题,我让ai帮我找错也找不到错在哪里,一直优化流程,但上传上去还是一直有两个报错,希望有大佬能帮我看看。 思路是对符合题目取值范围的m进行循环,然后通过m/i求得m的最高位数赋值给a,然后比较a是否为3,是就令sum+1,然后通过m-a*i去掉m的最高位数,然后继续循环,直到i=0.
#include <iostream>
#using namespace std;
int main()
{
long long m,k,a;
int sum = 0;
cin >> m;
cin >> k;
if (m <= 1000000000000000 && k <= 15 && k>1 && m>1)
{
long long i = 1000000000000000;
while ( i > 0)
{
if (i < m)
{
a = m / i;
if (a == 3)
{
sum++;
}
m = m - a * i;
}
i =i/ 10;
}
if (sum == k)
{
cout << "YES" << endl;
}
else
{
cout << "NO" << endl;
}
}
else
{
cout << "NO" << endl;
}
return 0;
}