当前位置: 首页 > article >正文

1012. 【USACO题库】1.3.4 Prime Cryptarithm牛式

题目描述

下面是一个乘法竖式,如果用我们给定的那几个数字来取代*,可以使式子成立的话,我们就叫这个式子牛式。
* * *
x * *
-------
* * *
* * *
-------
* * * *

数字只能取代*,当然第一位不能为0。写一个程序找出所有的牛式。

输入

从文件 crypt1.in 中读入数据。

Line 1:数字的个数。
Line 2:N个用空格分开的数字(每个数字都∈{1,2,3,4,5,6,7,8,9}) 。

输出

输出到文件 crypt1.out 中。

共一行,一个数字。表示牛式的总数。

样例输入 复制
5
2 3 4 6 8
样例输出 复制
1
提示

上述样例只有以下情况成立:
2 2 2
x 2 2
------
4 4 4
4 4 4
---------
4 8 8 4

#include <stdio.h>
#include <time.h>
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
int arr[100]= {0},n;
/*
7
4 1 2 5 6 7 3

*/
bool check(int n,int d)
{
	while(n)
	{
		if(n%10==d) return true;
		n/=10;
	}
	return false;
}
bool solve(int val)
{
	while(val)
	{
		int p=val%10,f=0;
		
		for(int i=1;i<=n;i++)
		{
			if(arr[i] == p) {
				//出现了
				f=1;break; 
			}
		}
		if(!f) return false;
		val/=10;
	}
	return true;
}
int main()
{
	//freopen("crypt1.in","r",stdin);
	//freopen("crypt1.out","w",stdout);
	scanf("%d",&n);
	for(int i=1; i<=n; i++)
	{
		scanf("%d",&arr[i]);
	}

	int ans=0;
	for(int i=1; i<=n; i++)
	{
		if(arr[i] == 0) continue;
		for(int j=1; j<=n; j++)
		{
			for(int k=1; k<=n; k++)
			{
				for(int l=1; l<=n; l++)
				{
					if(arr[l] == 0) continue;
					for(int p=1; p<=n; p++)
					{
						int c1=arr[i]*100+arr[j]*10+arr[k];
						int c2=arr[l]*10+arr[p];
						int c3=arr[p]*c1;
						int c4=arr[l]*c1; //注意!还要放大10x
						int c5=c1*c2;
						if(c5==c3+c4*10 && c5<=9999 && c3<=999 && c4<=999 && c4>=100 && solve(c3) && solve(c4) && solve(c5))
						{
							//printf("c1=%d c2=%d c3=%d c4=%d c5=%d\n",c1,c2,c3,c4,c5);
							ans++; 
						}
					}
				}
			}
		}
	}
	printf("%d",ans);
	return 0;
}

 


http://www.kler.cn/a/457157.html

相关文章:

  • 手写顺序流程图组件
  • 四大自平衡树对比:AVL树、红黑树、B树与B+树
  • Unity SpriteAtlasManager.atlasRequested趟坑
  • net.eval()和net.trasin()的用法
  • java里classpath都包含哪些范围?
  • 适用于项目经理的跨团队协作实践:Atlassian Jira与Confluence集成
  • 论文浅尝 | 编辑基于语言模型的知识图谱嵌入(AAAI2024)
  • 通用导出任何对象列表数据的excel工具类
  • 期权懂|期权新手入门知识:如何挑选期权活跃合约?
  • pytorch nn.Parameter模块介绍
  • Python|Pyppeteer实现自动化获取reCaptcha验证码图片以及提示词(29)
  • Debian-linux运维-ssh配置(兼容Jenkins插件的ssh连接公钥类型)
  • 【JS笔记】快速安装nodejs(九)
  • 雪花算法(Snowflake algorithm)介绍、优缺点及代码示例
  • upload-labs关卡记录17
  • 服务器时间不同步
  • Redis到底支不支持事务啊?
  • Docker安装GPUStack详细教程
  • 知识碎片-环境配置
  • 设计模式通俗解释
  • 基于springboot校园招聘系统源码和论文
  • c++---------------------------string
  • 深入解析JVM中对象的创建过程
  • 用 Python 从零开始创建神经网络(十八):模型对象(Model Object)
  • 隨筆20241226 ExcdlJs 將數據寫入excel
  • C# winform 报错:类型“System.Int32”的对象无法转换为类型“System.Int16”。