一个小学数学题

wcool 2008-07-03 03:45:32
这是今天我同事的小孩做的小学四年纪数学题:春江花月夜*4=夜月花江春。
我写了下用的穷举,但感觉效率太低了,不知道还有什么思想能提高下效率
我的代码如下:

#include<iostream.h>
void main(){
int a,b,c,d,e,x,y;
for(a=1;a<10;a++)
for(b=1;b<10;b++)
for(c=1;c<10;c++)
for(d=1;d<10;d++)
for(e=1;e<10;e++)
{
x=y=0;
x=a*10000+b*1000+c*100+d*10+e;
y=e*10000+d*1000+c*100+b*10+a;
if(y==x*4)
cout<<x<<endl;
}


}
...全文
194 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
瓶盒 2008-07-05
  • 打赏
  • 举报
回复
似乎任何问题都可以归结到状态空间的搜索与选择。
jieao111 2008-07-04
  • 打赏
  • 举报
回复
编程是懒于用脑,象二楼那样编程不如6楼分析。。几层循环效率就低,你也发现了它的速度很慢你接受不了吗?
GoAssemblyNow 2008-07-04
  • 打赏
  • 举报
回复
剪枝策略
AFIC 2008-07-04
  • 打赏
  • 举报
回复
有编程序的时间,早推出来了……
jmulxg 2008-07-03
  • 打赏
  • 举报
回复
很容易 6L的思路就好了
xibeitianlang 2008-07-03
  • 打赏
  • 举报
回复
夜=8,则 江 <3,得 月=2(花无解,舍去),7;
xibeitianlang 2008-07-03
  • 打赏
  • 举报
回复
编程太奢侈了!
用排除法:首先 0<春<3为4的倍数的尾数 即 春=2,且 夜=8;
夜=8,则 江<3,得 月=4(花无解,舍去),7;
月=7,则 花=8(舍去),9。
所以: 21978*4=87912
sssssjjjj 2008-07-03
  • 打赏
  • 举报
回复
真要用程序,10个数中选5个排列组合也比10^5快一点吧
sssssjjjj 2008-07-03
  • 打赏
  • 举报
回复
不是所有的题都可以用程序提高效率吧,就5个数,算呗
春江花月夜*4=夜月花江春
春只能是1,2因为3以上就要进位,而夜×4=春,所以春是偶数:2
夜×4=春,所以夜只能是3,8,而春×4=夜,所以夜>=8,因此夜=8
……依次往中间推,注意进位 21978
tailzhou 2008-07-03
  • 打赏
  • 举报
回复
还有,题目没说不能为0,所以每个数字的下标应该是从0开始;
tailzhou 2008-07-03
  • 打赏
  • 举报
回复
春江花月夜*4=夜月花江春

如果夜确定了,那么春也就确定了,春=4*夜 % 10
如果月夜确定了,那么江也就确定了,江=(4*(月*10+夜) %100) /10


tailzhou 2008-07-03
  • 打赏
  • 举报
回复
小学四年纪数学题 不需要写程序的吧?

即使穷举,也要从夜月花江春的顺序开始;

#include <iostream.h>
void main(){
int a,b,c,d,e,x,y;
for(a=1;a <10;a++)
e=4*a % 10;
for(b=1;b <10;b++)
{
d=(4*(b*10+a) % 100) / 10;
for (c=1;c<10;c++)
{
x=a*10000+b*1000+c*100+d*10+e;
y=e*10000+d*1000+c*100+b*10+a;
if(x==y*4) cout < < y < <endl;
}
}
}


}







33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧