欢迎来到天天文库
浏览记录
ID:27818489
大小:86.60 KB
页数:8页
时间:2018-12-06
《冲蚀算式问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、alpha虫蚀算式问题尊法实9M5-28虫恤尊式问・虫蚀目式圧指占丹中仲式的一部分被虫*rr.虫蚀尊式何题2卅牺虫蚀诈式啊卜'的立字.逻轴推斷般虫蛀了的数字.例如43798650?4584687663344445506978比中“?”表小虫蛀的数字。烈据此虫烛算式,甞易推断出.第1行的2个虫蛀数字分别是5和3•第2行的虫蛀数字足5・«m况卜,虫烛算式何题假设.算式中所有数字都被虫蛀了,但是知道虫蚀算式中哪些数字相同.力外还知道虫蚀ffAKin进制加法算真・虫蚀算式中的3个数都足n位数,且允许前导0・★编程任务】
2、对于给定的虫蚀罕式.编ffiinn式屮的虫蚀数字。賣数据•入:由文件input.txt给出输入数据.文件自4行。第1行仃1个iE整数n(n<・26),衣示所給的虫烛算式是n进制加法灯式•梵后3行中•毎行有1个由n个大得英文字附组成的字符串.分别表不虫蚀算式中的2个加数及JI和.相同的旋文字时代表相同的数字.食结果輪岀:将il毎出的虫蚀数7输出到文件uutpui.txt.在文件的第1行•输出英文字“A・B.C,…,所衣爪的数字・输入文件示例input.txt5输出文件示例uutput.txt10342ABCEDB
3、DACEEBBAA#includettincludeunsignedintn;char*a;char*c;int1;boolhash[256];boolfinished;boolused[26];intvalue[26];std::ofstreamfont("output.txt〃);inlinevoidSwap(int&x,int&y){inttemp二x;x二y;y二temp;}//整体的自右向左的检查boolCheckWhole(){ints,c=0;char*x=a
4、;char*y二&a[n];char*z二&a[2*n];for(inti=n-1;i>T;--i){if(x[i]>=n
5、
6、y[i]>=n
7、
8、z[i]>=n)returnfalse;//述有未知的,不能排除s二x[i]+y[i]+c;if(s%n!=z[i])returntrue;//已经可排除,退出是因为现有式子问题c=s/n;//s%二n;}if(c==l)returntrue;returnfalse;}//针对单个式子的检查boolPartialCheck(){inti,s,si,s2=0;char*x
9、=a;char*y二&a[n];char*z二&a[2*n];//x+y二zfor(i二n-1;i>T;--i){if(x[i]>=n
10、
11、y[i]>=n
12、
13、z[i]>=n)continue;s二(x[i]+y[i])%n;〃等式if(!(s二二z[i](s+1)%门二二z[i]))returntrue;不成立,排除}//x+?=zfor(i=n-1;i>二0;--i){if(!(x[i]二n))continue;si=(z[i]-x[i]+n)%n;s2=(si-1)%n;if
14、(used[sl]&&used[s2])returntrue;//未知数y的可能值都已用过,排除//?+b=cfor(i二n-1;i>二0;--i){if(!(x[i]>=n&&z[i]二0;--i){if(!(x[i]二n))contin
15、ue;si=(x[i]+y[i])%n;s2=(si+1)%n;if(used[sl]&&used[s2])returntrue;//未知数z的可能值都已用过,排除}returnfalse;}〃结果输出voidoutput(){fout<16、CheckWhole())return;if(PartialCheck())return;if(k==n){output();Teturn;}for(inti二nT;i>T;--i){if(!used[i]){used[i]=true;memepy(b,a,1);//Display(a,1);for(intj=0;j
16、CheckWhole())return;if(PartialCheck())return;if(k==n){output();Teturn;}for(inti二nT;i>T;--i){if(!used[i]){used[i]=true;memepy(b,a,1);//Display(a,1);for(intj=0;j
此文档下载收益归作者所有