| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 541 人关注过本帖
标题:求算法
只看楼主 加入收藏
cxwl3sxl
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:495
专家分:129
注 册:2005-11-12
结帖率:100%
收藏
 问题点数:0 回复次数:4 
求算法
求算法,有程序更好,题目如下:
a b c d e
+2 0 0 8 5
------------
f g h i j
求abcdefghij分别表示从0到9的一位数字,而且不允许重复使得上面的加法表达式成立的所有组合
搜索更多相关主题的帖子: 算法 
2006-04-01 20:28
油豆
Rank: 1
等 级:新手上路
帖 子:67
专家分:0
注 册:2006-3-29
收藏
得分:0 
最笨的办法就是穷举.从00000到99999.还没想到好的算法.

2006-04-01 21:52
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 

14982+20085=35067
27951+20085=48036
37941+20085=58026
41973+20085=62058
51963+20085=72048
64932+20085=85017
Press any key to continue

#include<iostream>
using namespace std;
int main(int argc, char* argv[])
{
int intar[10];
int intNumber, intResult;
bool bMatch;
for (intNumber = 10001; intNumber < 100000; intNumber++)
{
intar[0] = intNumber/10000;
intar[1] = (intNumber/1000)%10;
intar[2] = (intNumber/100)%10;
intar[3] = (intNumber/10)%10;
intar[4] = intNumber%10;

intResult = intNumber + 20085;
if (intResult >= 100000)
continue;

intar[5] = intResult/10000;
intar[6] = (intResult/1000)%10;
intar[7] = (intResult/100)%10;
intar[8] = (intResult/10)%10;
intar[9] = intResult%10;

bMatch = true;
for (int i = 0; i < 10 && bMatch; i++)
{
for (int j = 0; j < 10 && bMatch; j++)
{
if (i==j)
continue;
if (intar[i]==intar[j])
bMatch = false;
}
}
if (bMatch)
cout << intNumber << "+20085=" << intResult << endl;

}
return 0;
}


http://myajax95./
2006-04-02 01:55
feng1256
Rank: 4
等 级:贵宾
威 望:14
帖 子:2899
专家分:0
注 册:2005-11-24
收藏
得分:0 

你用C++,再说这程序也没必要带参运行(很怀疑你的动机)


叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-04-02 04:48
lmatt
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2006-3-30
收藏
得分:0 
我的小程序
我也贴个.但由于我是才学C语言,这个比较垃圾.
#include<stdio.h>
main()
{
int a,b,c=9,d,e,f,g,h=0,i,j;
for(e=1;e<=8;e++)
{
j=(e+5)%10;
if(j==e||j==9||j==0) continue;
for(d=1;d<=8;d++)
{
if(d==e||d==j||(d+(e+5)/10+8)<10) continue;
i=(d+(e+5)/10+8)%10;
if(i==d||i==e||i==j||i==9||i==0) continue;
for(b=1;b<8;b++)
{
if(b==i||b==e||b==d||b==j) continue;
g=b+1;
if(g==i||g==e||g==d||g==j) continue;
for(a=1;a<7;a++)
{
if(a==g||a==i||a==b||a==e||a==d||a==j) continue;
f=a+2;
if(f==e||f==b||f==i||f==d||f==g||f==j) continue;
printf("%d%d%d%d%d\n",a,b,c,d,e);
printf("%d%d%d%d%d\n",f,g,h,i,j);
}
}
}
}
getch();
}

2006-04-04 16:54
快速回复:求算法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033886 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved