三、题目:神奇的算式
由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成.
比如:2106=1260,
8
473=3784,
27*81=2187都符合要求

如果满足乘法交换律的算式算作同一种情况,那么,一共有多少种满足?


分析思路

遇到这种数字整数计算可以想到用枚举法计算

这道题目用枚举法,需要注意到首位数字不能为0,这道题目输出结果的时候。
要注意可能会出现重复的数字,就需要在前面把具体的数字计算输出检查是否有重复的算式。还需要看算式的数字排列顺序,利用数字转化为字符串,排序后比较算式中的过程中的数字与计算结果是否一致。


代码:

#include<iostream>
#include<sstream>
#include<string>
#include<algorithm>
using namespace std;bool check(int src,int r){//先转字符串,排序,比较string src_str,r_str;stringstream ss;ss<<src;   //将int类型的值放入输入流ss>>src_str; //从ss中抽取出前面插入的int类型的值,赋给stringstringstream 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;
}
int ans;
int main(){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!=j&&k!=i)for(int m=0;m<10;m++){if(m!=k&&m!=j&&m!=i){ int src=i*1000+j*100+k*10+m;  //ijkm四位数//验证if(j!=0){ int r1=i*(j*100+k*10+m); //乘法1位乘以3位结果if(check(src,r1)){printf("%d* %d\n",i);ans++;} }//验证 if(k!=0){int r2=(i*10+j)*(k*10+m);  //乘法2位乘以2位结果if(check(src,r2)){printf("%d*  %d\n",i*10+j,k*10+m);ans++;} }if(m!=0){int r3=(i*100+j*10+k)*(k); //乘法以3位乘以1位结果if(check(src,r3)){printf("%d * %d\n",i*100+j*10+k,m);ans++;} }} }}} } cout<<ans<<" "<<endl;return 0;
} 

运行出来的结果有5个不符合的,有重复的

答案:12

2013年C++A:神奇的算式相关推荐

  1. 2013\National _C_C++_A\1.填算式

    请看下面的算式: (ABCD - EFGH) * XY = 900 每个字母代表一个0~9的数字,不同字母代表不同数字,首位不能为0. 比如,(5012 - 4987) * 36 就是一个解. 请找到 ...

  2. 2013-2017蓝桥杯省赛C++A组真题总结(题型及解法)

    2013年 1.高斯日记: execl/手算/编程(模拟翻日历==简单枚举) 闰年 2.排它平方数: 枚举+筛选 数字不同的6位数x,它的平方数不含有x中的任意一个数字 枚举6位数,限制条件:a.各个 ...

  3. 蓝桥杯历年试题汇总 C/C++ B组

    B组 2012 第三届 微生物增殖 古堡算式 海盗比酒量 奇怪的比赛 方阵旋转  大数乘法 放旗子 密码发生器    夺冠概率 取球博弈             2013 第四届 高斯日记 马虎的算式 ...

  4. 2012-2020蓝桥C++ B组蓝桥杯省赛真题(第二题)

    http://t.csdn.cn/xUQT1 原文链接 目录 2012第二题:福尔摩斯探险 2013第二题:马虎的算式 2014第二题:切面条 2015第二题:星系炸弹 2016第二题:生日蜡烛 20 ...

  5. 【Code Pratice】—— 等差素数列、错误票据、神奇算式

    文章目录 1 | 等差素数列 题目 思路 逻辑代码 2 | 错误票据 题目 思路 逻辑代码 3 | 神奇算式 题目 思路 逻辑代码 1 | 等差素数列 题目 2,3,5,7,11,13,-是素数序列. ...

  6. 2013年第四届蓝桥杯C/C++ A组国赛 —— 第一题:填算式

    标题:填算式 请看下面的算式: (ABCD - EFGH) * XY = 900 每个字母代表一个0~9的数字,不同字母代表不同数字,首位不能为0. 比如,(5012 - 4987) * 36 就是一 ...

  7. 征战蓝桥 —— 2014年第五届 —— C/C++A组第3题——神奇算式

    题目 由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成.比如: 210 x 6 = 1260 8 x 473 = 3784 27 x 81 = 2187 都符合要求.如果满足乘法交 ...

  8. 2013蓝桥杯C++B:高斯日记;马虎的算式(2种解法)

    一.题目:高斯日记 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出 ...

  9. 蓝桥杯每日一题(17):神奇算式(python)

    Topic 由4个不同的数字,组成的一个乘法算式,它们的乘积仍然由这4个数字组成. 比如: 210 x 6 = 1260 8 x 473 = 3784 27 x 81 = 2187 都符合要求. 如果 ...

最新文章

  1. docker部署Redis6-0-6
  2. Git clone时出现Please make sure you have the correct access rights and the repository exists.问题已解决。
  3. python实体类dict to object
  4. zabbix 3.2.2 server端(源码包)安装部署 (一)【转】
  5. html div p 区别,html中div br p三者有什么区别?
  6. linux后台运行命令,nohup
  7. 软件连接oracle失败怎么办,【编程开发工具】navicat连接oracle失败怎么办
  8. linux模块创建proc,[Linux 运维]/proc/modules 以及内核模块工具
  9. redis 高可用切换_Redis高可用架构演进
  10. 高职计算机期末质量分析,利用SPASS进行计算机基础考试试卷质量分析
  11. Ant编译SWF、SWC例子脚本
  12. 【操作系统】处理机调度与死锁(三)
  13. 史上最简易无人机,仅有一个螺旋桨
  14. 300个VB全面控制Excel方法
  15. H5 的直播协议和视频监控方案
  16. Arch Linux 下安装 st (终端模拟器)
  17. double和float区别
  18. 万圣节日丧尸变异头像生成流量主小程序开发
  19. Multisim-滑动变阻器、稳压二极管
  20. 中国移动物联网白皮书.pdf

热门文章

  1. python自动化办公模块有哪些-Python 自动化办公|Word文档
  2. python初学者怎么入门-python初学者怎么入门
  3. python免费课程全套-如何获取免费python课程?
  4. python代码翻译器-我用40行python代码写一个桌面翻译器,很nice
  5. python趣味编程100例-达人迷 Python趣味编程10例
  6. 基于python的在线考试系统-Python在线考试系统防作弊功能的思路和实现
  7. 零基础学python-从0开始学Python,0基础小白
  8. vue+echarts 实时跟新数据 仪表盘多个渲染
  9. mock server java_MockServer 简单示例
  10. 【王道计组笔记】Cache高速缓存基本工作原理