前天晚上打开群,发现有后人发黑客游戏,玩到第4关了,说过不去了,求助。
好奇,打开,我也从第一关开始玩,前面倒不是很难,一直到第7关,汗过不去了
题目是这样的:第七关入口为一道题:
要求完成下面的表达式
a b c d e
+2 0 0 8 5
------------
f g h i j
其中2008表示2008年在北京举办奥运会,
5表示奥运五环,所以合起来20085刚好表示2008奥运。
要求abcdefghij分别表示从0到9的一位数字,而且不允许重复使得上面的加法表达式成立.
最后将所有满足条件的j从小到大连在一起就是第七关的地址了!不过还要在地址前加上lev7哦!
Made by Miao
2004.12.10
自己本来数学就是很差的人,面对如此难题,只有下狠心,开VC编了。。。。
全过程只遇到一个问题,怎么判断10个数字完全不相等,一开始想用数组,然后循环对比来做,
问了很多学长,都叫我这么做。可是我弄不出来,到网上搜,到群里问。。。都是一无所获,
网上固然有程序代码,但是不是C就是VB,我看都不看。。。。。
自己想。。。。。。
最后终于被我想到了。。。哈哈。
首先
,我把10个数字由小到大排序,然后确认 是不是最小的是0,然后是1,2,3,4,。。。。。
源代码如下:可是原创啊:
#include<iostream>
using namespace std;
int main(){
int a,b,c,d,e,f,g,h,i,j,result,course;
for(a=0;a<=9;a++){
for(b=0;b<=9;b++){
for(c=0;c<=9;c++){
for(d=0;d<=9;d++){
for(e=0;e<=9;e++){
course=a*10000+b*1000+c*100+d*10+e;
result=course+20085;
f=result/10000;
g=(result-f*10000)/1000;
h=(result-f*10000-g*1000)/100;
i=(result-f*10000-g*1000-h*100)/10;
j=(result-f*10000-g*1000-h*100-i*10);
int m[10]={a,b,c,d,e,f,g,h,i,j},size,size2,qita,temp;
for(size=0;size<=10;size++)
for(size2=size;size2<=10;size2++)
if(m[size2]<m[size])
{
int temp;
temp=m[size];
m[size]=m[size2];
m[size2]=temp;}
if(m[0]==0&&m[1]==1&&m[2]==2&&m[3]==3&&m[4]==4&&m[5]==5&&m[6]==6&&m[7]==7&&m[8]==8&&m[9]==9)
cout<<j<<endl;
}}}}}
return 0;}
程序可能有点蠢。。。毕竟是成功了。。。。。呼。。。。。
PS:游戏地址:http://hackgame.cnxhacker.net/startgame.asp |