竖式问题
  • 板块学术版
  • 楼主万灭、蓝鲸
  • 当前回复0
  • 已保存回复0
  • 发布时间2020/7/29 17:27
  • 上次更新2023/11/6 21:50:57
查看原帖
竖式问题
351081
万灭、蓝鲸楼主2020/7/29 17:27

这道题一直没想通有没有大神来教我下


image


样例输入
5
2 3 4 6 8
样例输出
1

这是我的的WA代码

#include <bits/stdc++.h>
using namespace std;

int n, ans, a[1005];

int read()
{ 
  char ch = getchar(); 
  while (ch < '0' || '9' < ch) 
  	ch = getchar(); 
  int sum = ch - '0'; 
  ch = getchar(); 
  while('0' <= ch && ch <= '9') 
  { 
    sum = sum * 10 + ch - '0';  
  	ch = getchar(); 
  } 
	return sum; 
}

bool check(int x)
{
	bool f = 0;
	while (x != 0)
	{
		for (int i = 1; i <= n; i++)
			if (a[i] == x % 10)  {f = 1; break;}
		if (f == 0)  return 0;
		x /= 10;
	}
	return 1;
}

int main()
{
  n = read();
  for (int i = 1; i <= n; i++)
    a[i] = read();
  for (int i = 111; i <= 999; i++)
  {
  	for (int j = 11; j <= 99; j++)
  	{
  		if (i * j >= 10000 || j / 10 * i >= 1000 || j % 10 * i >= 1000)  continue;
  		if (!check(i))  continue;
  		if (!check(j))	continue;
  		if (!check(i * j))  continue;
  		if (!check(j % 10 * i))  continue;
  		if (!check(j / 10 * i))  continue;
  		ans++;
	}
  }
  printf("%d", ans);
  return 0;
}

2020/7/29 17:27
加载中...