博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
神奇算式
阅读量:6818 次
发布时间:2019-06-26

本文共 2104 字,大约阅读时间需要 7 分钟。

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

比如:

210*6=1260

8*473=3764

27*81=2187都符合要求。

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

#include 
int issame(int a,int b,int c ,int d){ if(a == b || a == c || a == d) return 1; if(b == c || b == d || c == d) return 1; return 0;}int isdivided(int t,int a,int b,int c,int d){ int a1,b1,c1,d1; int mark = 0; //取位数 a1 = t%10; t /= 10; b1 = t%10; t /= 10; c1 = t%10; d1 = t/10; if(!issame(a1,b1,c1,d1)) { if(a1 == a || a1 == b || a1 == c || a1 == d) mark ++; if(b1 == a || b1 == b || b1 == c || b1 == d) mark ++; if(c1 == a || c1 == b || c1 == c || c1 == d) mark ++; if(d1 == a || d1 == b || d1 == c || d1 == d) mark ++; if(mark == 4) return 1; } return 0;}int main(){ int count = 0; int a,b,c,d,t; //a*bcd型 for(a=2;a<=9;a++) for(b=1;b<=9;b++) for(c=0;c<=9;c++) for(d=0;d<=9;d++) { if(!issame(a,b,c,d))//4个数字各不相同 { t = a*(100*b+10*c+d); if(t/1000 > 0 && isdivided(t,a,b,c,d))//首先要是4位数,判断乘积 是否由这4个数字组成 { printf("%d*%d=%d\n",a,t/a,t) ; count ++; } } } //ab*cd型(ab
a && c <=9否则a自加1后,因不满足条件而跳出循环,导致最终的a=1999就停止搜索 for(d=0;d<=9;d++) { //printf("find%d%d%d%d\n",a,b,c,d); if(c > a && !issame(a,b,c,d)) //c>a应该写在此处 { t = (10*a + b)*(10*c + d); if(t/1000 > 0 && isdivided(t,a,b,c,d)) { printf("%d*%d=%d\n",10*a+b,10*c+d,t); count ++; } } } printf("共计:%d\n",count); return 0;}

转载于:https://www.cnblogs.com/520xiuge/articles/5285569.html

你可能感兴趣的文章
Mysql 5.6主从同步配置与解决方案
查看>>
超微服务器开机后没有反应解决方法
查看>>
WinAPI: SetWindowPos - 改变窗口的位置与状态
查看>>
Delphi 中的自动释放策略
查看>>
python3——字符串基础
查看>>
Java VisualVM 插件地址
查看>>
MacOS自带PHPGD库问题
查看>>
Setting up 11g Active Dataguard(ADG)
查看>>
五天学redhat系列之---系统基础管理
查看>>
土地划分
查看>>
IPv6静态路由配置
查看>>
初识Nginx——nginx的编译、安装及特点(一)
查看>>
通过redis扩展分布式存储fastdfs的数据对应及方案
查看>>
我的友情链接
查看>>
Linux学习记录--日志系统
查看>>
什么是OTT
查看>>
大型互联网站解决高并发的常见策略
查看>>
Apache Rewrite
查看>>
UML学习笔记(7)——时序图
查看>>
python爬虫基础
查看>>