求助一个VS(可能是它的锅?)的错误/kel
  • 板块学术版
  • 楼主zhiyangfanshotacon
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/12/4 16:30
  • 上次更新2023/11/3 22:57:11
查看原帖
求助一个VS(可能是它的锅?)的错误/kel
137603
zhiyangfanshotacon楼主2021/12/4 16:30

这是代码(交到谷谷的超级玛丽上没有 RE\tt RE):

#include <cstdio>
#include <cstring>
const int N = 5e5 + 10; char s[N];
struct bigNum
{
	int a[N], len;
	bigNum(const char* s)
	{
		len = strlen(s + 1);
		for (int i = 1; i <= len; ++i) a[len - i + 1] = s[i] - '0';
	}
	bigNum(int k = 0)
	{
		len = 0;
		while (k) a[++len] = k % 10, k /= 10; 
	}
	int& operator[](int k) { return a[k]; }
	bigNum operator+(bigNum c)
	{
		bigNum ans(*this); ans.len = c.len > len ? c.len : len;
		for (int i = 1; i <= ans.len; ++i) ans[i] += c[i];
		int k = 0;
		for (int i = 1; i <= ans.len; ++i) ans[i] += k, k = ans[i] / 10, ans[i] %= 10;
		while (k) ans[++ans.len] = k % 10, k /= 10;
		return ans;
	}
	bigNum operator*(int k)
	{
		bigNum ans = *this;
		for (int i = 1; i <= k; ++i) ans = ans + ans;
		return ans;
	}
}A;
inline bool check(int x)
{
	bigNum k = A * 9 + 9 * x;
	int tot = 0;
	for (int i = 1; i <= k.len; ++i) tot += k[i];
	return tot <= x;
}
int main()
{
    printf("1\n");
	scanf("%s", s + 1); A = bigNum(s);
	int l = 1, r = A.len, mid, ans = 1;
	while (l <= r)
	{
		mid = (l + r) >> 1;
		if (check(mid)) r = mid - 1, ans = mid;
		else l = mid + 1;
	}
	printf("%d\n", ans); return 0;
}

但是 VS 上面调试的时候,就会出现这个错:

而且就我 main() 里面那第一行的 printf("1\n"); 都不会执行。请问是啥错啊qwq

2021/12/4 16:30
加载中...