博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言 · 猜算式 · 乘法竖式
阅读量:4992 次
发布时间:2019-06-12

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

题目:猜算式

你一定还记得小学学习过的乘法计算过程,比如:

   273

x   15

------  

1365  

273

------  

4095  

请你观察如下的乘法算式

     ***

x   ***

--------    

     ***   

   ***  

***

--------  

*****  

星号代表某位数字,注意这些星号中,0~9中的每个数字都恰好用了2次。 (如因字体而产生对齐问题,请参看图p1.jpg)

条件:每个数字要出现两次、公式要成立、结果是五位数。

请写出这个式子最终计算的结果,就是那个5位数是多少?

1 #include
2 #include
3 int jinwei(int i,int *f){ 4 while(i>0){ 5 if(f[i%10]==2){ 6 return 0; 7 } 8 f[i%10]++; 9 i/=10;10 }11 return 1;12 }13 bool check(int i,int j,int a,int b,int c,int d){14 int x[20]={i/100,(i/10)%10,i%10,j/100,(j/10)%10,j%10,a/100,(a/10)%10,a%10,b/100,(b/10)%10,b%10,c/100,(c/10)%10,c%10,d/10000,(d/1000)%10,(d/100)%10,(d/10)%10,d%10};15 int y[20]={
0};16 for(int h=0;h<20;h++){17 y[x[h]]++;18 }19 for(int h=0;h<20;h++){20 if(y[h]!=2){21 return false;22 }else{23 return true;24 }25 }26 }27 int main(){28 int i,j;29 for(i=100;i<=999;i++){30 for(j=100;j<=999;j++){31 int f[10]={
0};//数组初始化 32 int a = i*(j%10);//乘个位得 33 int b = i*((j/10)%10);//乘十位得34 int c = i*(j/100);//乘百位得35 36 if(a>=1000||b>=1000||c>=1000||i*j>=100000||a<100||b<100)37 continue;38 39 if(!check(i,j,a,b,c,i*j))40 continue;41 42 if(i

 

转载于:https://www.cnblogs.com/panweiwei/p/6682838.html

你可能感兴趣的文章
第一章 Web应用程序开发基础
查看>>
我的工作内容
查看>>
12_文件查找详解和特殊权限
查看>>
Linux基础初识(五)
查看>>
2. 组建的注册与引入
查看>>
Excel 相关实用计算公式
查看>>
1169.比较奇偶数个数
查看>>
Java – How to convert Array to Stream
查看>>
java学习1-环境搭建
查看>>
c# 获取当前季的第一天以及最后一天
查看>>
MYSQL生成两个日期之间的所有日期数据
查看>>
shell脚本安装jdk
查看>>
( 转)Sqlserver中tinyint, smallint, int, bigint的区别 及 10进制转换16进制的方法
查看>>
ASP.NET实现类似Excel的数据透视表
查看>>
js在IE与firefox的差别。。。
查看>>
数据库事务的四大特性以及事务的隔离级别
查看>>
html4与html5的区别及html5的一些新特性
查看>>
2018年牛客多校算法寒假训练营练习比赛(第一场)C. 六子冲
查看>>
版本工具管理之----git
查看>>
JavaEE基础(二十四)/多线程
查看>>