80求助
查看原帖
80求助
1519471
a1329425635楼主2024/10/20 15:55

刚学没多久,写的不是很好,细节也不是很好,但我思路没问题,我让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;
}
                            
               
2024/10/20 15:55
加载中...