标题:神奇算式

由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. Rpgmakermv(32) Yep_mainmenumanager

    ============================================================================ Introduction ========== ...

  2. Solid Dominoes Tilings (轮廓线dp打表 + 容器)

    第一步先打一个表,就是利用轮廓线DP去打一个没有管有没有分界线组合数量的表 #include<bits/stdc++.h> using namespace std; ; <<; ...

  3. 20155228 2016-2017-2 《Java程序设计》第4周学习总结

    20155228 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 继承与多态 继承:在Java中,子类只能继承一个父类,关键字为extends,子类和父类之间 ...

  4. kalinux实现自适用全屏、与物理主机共享文件方法

    1.执行虚拟机>安装VMware Tools菜单命令,自动挂载光驱(一般是自动挂载的,如果没有自动挂载请自行百度linux如何手动挂载光驱) 2.打开vm光驱的vmtools复制此文件到桌面: ...

  5. 20165305 苏振龙 《Java 程序设计》第一次测试总结

    第一个代码运行结果截图 功能:从1到5305进行求和 第二个代码运行结果截图 代码托管 第三个代码运行结果截图 (1)源文件的名字为Person.java (2)生成2个字节码文件,名字为Person ...

  6. Linux基础命令---arp

    arp arp指令用来管理系统的arp缓冲区,可以显示.删除.添加静态mac地址.ARP以各种方式操纵内核的ARP缓存.主要选项是清除地址映射项并手动设置.为了调试目的,ARP程序还允许对ARP缓存进 ...

  7. 13年总结js,css,java xml

    --------------------------------------javaScript知识点----------------------------- jQuery对象[Object obj ...

  8. Python HTMLTestRunner 学习

    HTMLTestRunner 是 基于 unittest 单元测试的 HTML报告 的一个第三库   安装: 1. 安装:下载HTMLTestRunner.py文件:地址http://tungwaiy ...

  9. Java学习技术分享:Java中的原子操作

    学习java需要有一套完整的学习线路,需要有条理性,当下学习java已经有一段时间了,由当初的懵逼状态逐渐好转,也逐渐养成了写技术学习笔记的习惯,今天总结了一下java中的原子操作. 1.Java中的 ...

  10. Django框架----路由系统(详细)

    Django的路由系统 Django 1.11版本 URLConf官方文档 URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表. ...