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

本文共 1384 字,大约阅读时间需要 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

 

转载地址:http://ltngx.baihongyu.com/

你可能感兴趣的文章
C链表
查看>>
Oracle教程之分析Oracle索引扫描四大类
查看>>
2016.8.23_每日IT单词
查看>>
Centos/ubuntu配置SVN服务
查看>>
lgwr,dbwr,chpk
查看>>
一个游戏程序员的学习资料
查看>>
ORACLE RAC均衡负载
查看>>
Memcached 安装脚本(附服务器自启动)
查看>>
MySQL学习笔记汇总
查看>>
cobbler MOD_PYTHON ERROR
查看>>
Git查看历史记录
查看>>
Ubuntu下SSH设置
查看>>
InnoDB memcached插件的前提条件
查看>>
Linux基础入门--find(文件查找)
查看>>
卸载rpm包(使用yum卸载)
查看>>
db创建较简语法示例
查看>>
根据一個地址,在百度地圖上獲得經緯度,返回的是一個XML
查看>>
Java注册登陆学习笔记
查看>>
网站日志分析
查看>>
linux中init.d文件夹的说明
查看>>