/*
标题:神奇算式
由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。
比如:
210 x 6 = 1260
8 x 473 = 3784
27 x 81 = 2187
都符合要求。
如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。
请填写该数字,通过浏览器提交答案,不要填写多余内容(例如:列出所有算式)。
*/ #include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
using namespace std; /*
如果是初始化,只要定义第一个元素为0,后面就全为0了,如
int a[10] = {0};
如果是在定义以后想全部赋为0,用memset()函数是比较快的。
如:
int a[10];
memset(a, 0, sizeof(int)*10);
*/
int flag[]; //compares the two arrays so as to know if they have the same elements
bool f(int a1[],int a2[])
{
for(int i=;i<;i++)
{
if(a1[i]!=a2[i]) return false;
}
return true;
} int main()
{
for(int i=;i<=;i++)
{
memset(flag, , sizeof(int)*);
int n=i;
int a[] = {};
{
a[]=n/;n=n%;
a[]=n/;n=n%;
a[]=n/;n=n%;
a[]=n;//求每一位的数字
}
n=i;
while(n)//求解i每一位的组成
{
flag[n%]++;
n/=;
//cout<<flag[0]<<flag[1]<<flag[2]<<flag[3]<<flag[4]<<flag[5]<<flag[6]<<flag[7]<<flag[8]<<flag[9]<<flag[10]<<endl;
}
int final[];//存放每一种组合的相乘的结果
{
final[]=(a[])*(a[]*+a[]*+a[]);
final[]=(a[]*+a[])*(+a[]*+a[]);
final[]=(a[]*+a[]*+a[])*(a[]);
}
int flag1[][]={};//存放每个结果的每一位的组成
for(int j=;j<;j++)
{
n=final[j];
while(n)
{
flag1[j][n%]++;
n/=;
}
//cout<<flag1[j][0]<<flag1[j][1]<<flag1[j][2]<<flag1[j][3]<<flag1[j][4]<<flag1[j][5]<<flag1[j][6]<<flag1[j][7]<<flag1[j][8]<<flag1[j][9]<<flag1[j][10]<<endl;
}
bool b;
//case1
if(f(flag,flag1[])) cout<<a[]<<"*"<<a[]*+a[]*+a[]<<"="<<final[]<<endl;
//case2
if(f(flag,flag1[])) cout<<a[]*+a[]<<"*"<<a[]*+a[]<<"="<<final[]<<endl;
//case3
if(f(flag,flag1[])) cout<<a[]*+a[]*+a[]<<"*"<<a[]<<"="<<final[]<<endl;
}
return ;
}

思想并不复杂,就是从1000到9999,把每个数拆分成四位存到一个数组里,
然后考虑每个数,对每一种分解情况考虑两个因子的组成是不是和原数一样,是就输出。
主要是要注意构造好存放每一位的标志数组flag和flag1,因为这两个数组没构造好,导致我浪费了一个小时调试,TNND。

tz@COI HZAU

2018/3/14

2014年蓝桥杯省赛A组c++第3题(数组构造+暴力求解)的更多相关文章

  1. 2014年蓝桥杯省赛A组c++第1题(暴力求解)

    /* 小明带两个妹妹参加元宵灯会.别人问她们多大了,她们调皮地说:“我们俩的年龄之积是年龄之和的6倍”. 小明又补充说:“她们可不是双胞胎,年龄差肯定也不超过8岁啊.” 请你写出:小明的较小的妹妹的年 ...

  2. 2014年蓝桥杯省赛A组c++第2题(推公式)

    /* 标题:切面条 一根高筋拉面,中间切一刀,可以得到2根面条. 如果先对折1次,中间切一刀,可以得到3根面条. 如果连续对折2次,中间切一刀,可以得到5根面条. 那么,连续对折10次,中间切一刀,会 ...

  3. 2012年蓝桥杯省赛A组c++第3题(喝断片的海盗)

    /* 有一群海盗(不多于20人),在船上比拼酒量.过程如下:打开一瓶酒, 所有在场的人平分喝下,有几个人倒下了.再打开一瓶酒平分,又有倒下的, 再次重复...... 直到开了第4瓶酒,坐着的已经所剩无 ...

  4. 2015年蓝桥杯省赛A组c++第5题(回溯算法填空)

    /* 1,2,3…9 这九个数字组成一个分数,其值恰好为1/3,如何组法? 下面的程序实现了该功能,请填写划线部分缺失的代码. */ #include <stdio.h> void tes ...

  5. 2012年蓝桥杯省赛A组c++第4题(电视台答题比赛)

    /* 某电视台举办了低碳生活大奖赛.题目的计分规则相当奇怪: 每位选手需要回答10个问题(其编号为1到10),越后面越有难度. 答对的,当前分数翻倍:答错了则扣掉与题号相同的分数(选手必须回答问题,不 ...

  6. 2012年蓝桥杯省赛A组c++第2题(暴力求解古堡算式)

    /* 古堡算式 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!” 华生:“我猜也是!” 于是, ...

  7. 2012年蓝桥杯省赛A组c++第1题(xy迭代增殖)

    /* 微生物增殖 题目: 假设有两种微生物 X 和 Y X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍). 一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分 ...

  8. 2017年蓝桥杯省赛A组c++第7题(正则问题)

    /* 描述:正则问题 考虑一种简单的正则表达式: 只由 x ( ) | 组成的正则表达式. 小明想求出这个正则表达式能接受的最长字符串的长度. 例如 ((xx|xxx)x|(x|xx))xx 能接受的 ...

  9. 2017年蓝桥杯省赛A组c++第1题(走迷宫)

    /* 标题:迷宫 X星球的一处迷宫游乐场建在某个小山坡上. 它是由10x10相互连通的小房间组成的. 房间的地板上写着一个很大的字母. 我们假设玩家是面朝上坡的方向站立,则: L表示走到左边的房间, ...

随机推荐

  1. GCD 之线程死锁

    GCD 确实好用 ,很强大,相比NSOpretion 无法提供 取消任务的功能. 如此强大的工具用不好可能会出现线程死锁. 如下代码: - (void)viewDidLoad { [super vie ...

  2. GCD使用:让程序在后台较长久的运行(UIBackgroundTaskIdentifier )

        在没有使用GCD时,当app被按home键退出后,app仅有最多5秒钟的时候做一些保存或清理资源的工作.但是在使用GCD后,app最多有10分钟的时间在后台长久运行.这个时间可以用来做清理本地 ...

  3. 译: 5. RabbitMQ Spring AMQP 之 Topic 主题

    在上一个教程中,我们提高了消息传递的灵活 我们使用direct交换而不是使用仅能够进行虚拟广播的fanout交换, 并且获得了基于路由key 有选择地接收消息的可能性. 虽然使用direct 交换改进 ...

  4. pandas的qcut()方法

    pandas的qcut可以把一组数字按大小区间进行分区,比如 data = pd.Series([0,8,1,5,3,7,2,6,10,4,9]) 比如我要把这组数据分成两部分,一半大的,一半小的,如 ...

  5. js的new Date()日期的使用

    <script type="text/javascript"> //js获取某个月的天数 function days(year,month){ var dayCount ...

  6. 在C#用HttpWebRequest中发送GET/HTTP/HTTPS请求(转)

    通用辅助类 下面是我编写的一个辅助类,在这个类中采用了HttpWebRequest中发送GET/HTTP/HTTPS请求,因为有的时候需要获取认证信息(如Cookie),所以返回的是HttpWebRe ...

  7. LeetCode: Subsets 解题报告

    Subsets Given a set of distinct integers, S, return all possible subsets. Note: Elements in a subset ...

  8. Python3自定义json逐层解析器

    [本文出自天外归云的博客园] 用python3对json内容逐层进行解析,拿中国天气网的接口返回数据测试,代码如下: # -*- coding: utf-8 -*- import operator a ...

  9. 模板, 保存&发布

    单击“视图”菜单中的“幻灯片模板”按钮,会弹出“幻灯片母版”选项卡,在此选项卡中,可以修改当前PPT的模板, 例如网上下载的幻灯片上的LOGO都可在这里去除. 模板设计总结 1. 背景可以选择纯色,也 ...

  10. 解决Django-1.8.2应用部署到Apache后无法显示admin应用的CSS

    在将Django-1.8.2应用部署到Apache后,无法显示admin应用的静态内容,而在“manage.py runserver”命令下可以正常显示,主要是Apache没有找到Django静态内容 ...