标题:神奇算式

由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成。

比如:

210 x 6 = 1260

8 x 473 = 3784

27 x 81 = 2187

都符合要求。

如果满足乘法交换律的算式算作同一种情况,那么,包含上边已列出的3种情况,一共有多少种满足要求的算式。

请填写该数字,通过浏览器提交答案,不要填写多余内容(例如:列出所有算式)。

这里的思路:枚举4个数字,判断两两数的乘积是否等于 这4个数组成的某个数字(判断相等,可以先用字符串排序,只要满足 A(a*b) == B(ab的各个位数组成的数,则满足条件)

起初,没有想到这一点啊,就直接用暴力全部情况枚举一遍了(效率太低,写代码花时间太多了)

还可以转成字符串,只要字符串相等就是一种方案。

学会整数转字符串(sstream库):

    #include <sstream字符串流>
#include <string> string src_str;
stringstream ss;
ss << a;
ss >> src_str;

介绍sstream字符串流的博文:https://www.cnblogs.com/wyuzl/p/6135537.html

#include <iostream>
#include <sstream>
#include <string>
#include <algorithm> bool check(int src, int r); using namespace std;
int ans; int main(int argc, const char *argv[]) {
for (int i = 1; i < 10; ++i) {
for (int j = 0; j < 10; ++j) {
if (i != j)
for (int k = 0; k < 10; ++k) {
if (k != i && k != j)
for (int l = 0; l < 10; ++l) {
if (l != i && l != j && l != k) {
int src = i * 1000 + j * 100 + k * 10 + l;//ijkl四位数
//验证
if (j != 0) {
int r1 = i * (j * 100 + k * 10 + l);//乘法结果
if (check(src, r1)) {
printf("%d * %d\n", i,j * 100 + k * 10 + l);
ans++;
}
}
//验证
if (k != 0) {
int r2 = (i * 10 + j) * (k * 10 + l);//乘法结果
if ((i * 10 + j)< (k * 10 + l)&&check(src, r2)) {
printf("%d * %d\n", i * 10 + j, k * 10 + l);
ans++;
}
}
// if (l != 0) {
// int r3 = (i * 100 + j * 10 + k) * (l);//乘法结果
// if (check(src, r3)) {
// printf("%d * %d\n", i * 100 + j * 10 + k, l);
// ans++;
// }
// }
}
}
}
}
} cout << ans << endl;
return 0;
} bool check(int src, int r) {
// 先转字符串,排序,比较
string src_str, r_str;
stringstream ss;
ss << src;
ss >> src_str;
stringstream ss1;
ss1 << r;
ss1 >> r_str;
sort(r_str.begin(), r_str.end());
sort(src_str.begin(), src_str.end());
if (r_str == src_str) {
return true;
}
return false;
}

枚举+排序|神奇算式|2014年蓝桥杯A组题解析第三题-fishers的更多相关文章

  1. 奇怪的分式|2014年蓝桥杯B组题解析第六题-fishers

    奇怪的分式 上小学的时候,小明经常自己发明新算法.一次,老师出的题目是: 1/4 乘以 8/5 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1.png) 老师刚想批评他,转念 ...

  2. 啤酒和饮料|2014年蓝桥杯B组题解析第一题-fishers

    啤酒和饮料|2014年第五届蓝桥杯B组题解析第一题-fishers 啤酒和饮料 啤酒每罐2.3元,饮料每罐1.9元.小明买了若干啤酒和饮料,一共花了82.3元. 我们还知道他买的啤酒比饮料的数量少,请 ...

  3. 第六届蓝桥杯JavaB组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.分机号 X老板脾气古怪,他们公司的电话分机号都是3位数,老板规定,所有号码必须是降序排列,且不能有重复的数位.比如: 751,520, ...

  4. 第六届蓝桥杯JavaA组国(决)赛真题

    解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.胡同门牌号 小明家住在一条胡同里.胡同里的门牌号都是连续的正整数,由于历史原因,最小的号码并不是从1开始排的. 有一天小明突然发现了有 ...

  5. 全排列+字符串查找|扑克排序|2014年蓝桥杯A组题解析第六题-fishers

    标题:扑克序列 A A 2 2 3 3 4 4, 一共4对扑克牌.请你把它们排成一行. 要求:两个A中间有1张牌,两个2之间有2张牌,两个3之间有3张牌,两个4之间有4张牌. 请填写出所有符合要求的排 ...

  6. 古堡算式|2012年蓝桥杯B组题解析第二题-fishers

    (4')古堡算式 福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式: ABCDE * ? = EDCBA 他对华生说:"ABCDE应该代表不同的数字,问号也代表某个数字!" 华生: ...

  7. 马虎的算式|2013年蓝桥杯B组题解析第二题-fishers

    小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了. 有一次,老师出的题目是:36 x 495 = ? 他却给抄成了:396 x 45 = ? 但结果却很戏剧性,他的答案竟然是对的!! 假设 ...

  8. 0-1背包dp|波动数列|2014年蓝桥杯A组10-fishers

    标题:波动数列 观察这个数列: 1 3 0 2 -1 1 -2 ... 这个数列中后一项总是比前一项增加2或者减少3. 栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加a ...

  9. 李白打酒|2014年蓝桥杯B组题解析第三题-fishers

    李白打酒 话说大诗人李白,一生好饮.幸好他从不开车. 一天,他提着酒壶,从家里出来,酒壶中有酒2斗.他边走边唱: 无事街上走,提壶去打酒. 逢店加一倍,遇花喝一斗. 这一路上,他一共遇到店5次,遇到花 ...

随机推荐

  1. html5粒子连线

    <html> <head> <title></title> <meta charset="utf-8" /> <s ...

  2. BR(BoomerangRobot)机器人项目

    项目宗旨:推动机器人技术及相关知识的普及,增进广大机器人DIYer们的交流,提高爱好者们自身的专业水平,项目提供以机器人BR(boomerangrobot)为硬件平台,ROS(robot operat ...

  3. La Vie en rose (模拟)

    #include<bits/stdc++.h> using namespace std; ; ; int T, n, m; char str1[maxm], str2[maxn]; int ...

  4. Fantasia (点强连通分量建图 + 树形DP)

    简化一下题意,我们先看成一副强连通的图,这时候应该是最简单了,去点任意点都是其他的乘积.那再加强一点难度,改为两个强连通图连接的非强连通图呢?那应该就是找出关键的那个点,并求出两边的乘积.但是一个一个 ...

  5. sql privot 实现行转列

    表结构如下: RefID    HRMS    Name    InsuranceMoney    InsuranceNamefb2bdee8-e4c9-4470-8e7f-14550d3212f7  ...

  6. MVC中的Ajax与增删改查(二)

    上一篇记录的是前台操作,下面写一下后台 ,本来自认为是没有必要做补充,毕竟思路啥的都有,实际上在做删除操作的时候,折腾了一天,还是自己太嫩,逻辑不够严谨,这里作下记录. 关于表结构这里再作下说明: ① ...

  7. Linux基础命令---显示登录用户logname

    logname 显示当前登录的用户名称.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法        logname   2 ...

  8. python 爬虫基础知识一

    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本. 网络爬虫必备知识点 1. Python基础知识2. P ...

  9. ASP.NET Core Web API 索引 (更新Redis in .NET Core)

    https://www.cnblogs.com/cgzl/p/9178672.html

  10. [转载] mysql 索引中的USING BTREE 的意义

    索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型. 根据存储引擎定义每个表的最大索引数和最大索引长度.所有存储引擎支持每个表至少16个索引,总 ...