求教C++问题
c++吧
全部回复
仅看楼主
level 7
福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:
ABCDE * ? = EDCBA
他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”
华生:“我猜也是!”
于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把 ABCDE 所代表的数字写出来。#include <iostream>
using namespace std;
int main(){
double a,b,c,d,e;
double i,n;
for(n=1;n<=9;n++)
{
for(i=10000;i<=99999;i++)
{
a = i/10000;
b = (i - a*10000)/1000;
c = (i - a*10000 - b*1000)/100;
d = (i - a*10000 - b*1000- c*100)/10;
e = (i - a*10000 - b*1000- c*100-10*d);
while (a+10*b+100*c+1000*d+10000*e = n*i )
{
cout <<i<<endl;
}
}
}
return 0;
}
求教,不管怎么调试,总是出错。。
2012年12月10日 13点12分 1
level 14
while里面试试==
2012年12月10日 13点12分 2
while 判断居然是单等号,不出错不科学
2012年12月11日 07点12分
回复 曦夕兮 :[瀑布汗~]我指错了
2012年12月11日 10点12分
回复 曦夕兮 :知错了
2012年12月11日 10点12分
level 12
int main(){
int a,b,c,d,e;
int i,n;
for(n=1;n<=9;n++)
{
for(i=10000;i<=99999;i++)
{
a = i/10000;
b = (i - a*10000)/1000;
c = (i - a*10000 - b*1000)/100;
d = (i - a*10000 - b*1000- c*100)/10;
e = (i - a*10000 - b*1000- c*100-10*d);
if (a+10*b+100*c+1000*d+10000*e == n*i )
{
cout <<i << " " << n <<endl;
}
}
}
system("pause");
return 0;
}
2012年12月10日 13点12分 3
[我错了]谢谢了,少了个等于号
2012年12月10日 13点12分
回复 米内特滴眼泪 :注意如果你用double,a b c d e都可能是小数,你得不到结果。
2012年12月10日 14点12分
回复 codemoon :还有那个判断,你用了while,死循环了
2012年12月10日 14点12分
回复 codemoon :谢谢提醒,但是不用double的话会溢出的啊,肿么办呢
2012年12月10日 14点12分
level 5
只是我打的,顺利输出结果是 21978 * 4 = 87912
#include <iostream>
using namespace std;
bool find_different(int a,int b,int c,int d,int e){
if (a==b)return false;
if (a==c)return false;
if (a==d)return false;
if (a==e)return false;
if (b==c)return false;
if (b==d)return false;
if (b==e)return false;
if (c==d)return false;
if (c==e)return false;
if (d==e)return false;
return true;
}
int main(){
int a,b,c,d,e,n;
for (a=1; a<10; a++) {
for (b=0;b<10;b++){
for (c=0; c<10; c++) {
for (d=0; d<10; d++) {
for (e=1; e<10; e++) {
for (n=1; n<10; n++) {
if ((10000*a+1000*b+100*c+10*d+e)*n==(10000*e+1000*d+100*c+10*b+a)) {
if (find_different(a, b, c, d, e)) {
cout<<(10000*a+1000*b+100*c+10*d+e)<<" * "<<n<<" = "<<(10000*e+1000*d+100*c+10*b+a)<<endl;
}
}
}
}
}
}
}
}
return 0;
}
2012年12月10日 14点12分 4
[啊!]完全正确,代码也很规范,万分感谢
2012年12月10日 14点12分
回复 米内特滴眼泪 :没仔细看你的代码,就直接按题意打了这段,具体你的代码语法规则有没有错误不清楚,但你没有把a,b,c,d,e中存在几个数字相等的情况排出,另外,我这段还少了点东西,还要保证EDCBA≤99999,虽然没遇到,但还是加一下严谨些
2012年12月10日 14点12分
回复 米内特滴眼泪 :不对,不是EDCBA≤99999,是ABCDE*?≤99999
2012年12月10日 14点12分
回复 SuperDJ12321 :您说的极是,一方面想的不够周到,另一方面就是没经验。我是设计的五位数,五位数的组合最大也就是99999吧。。。
2012年12月10日 14点12分
level 8
11111*1=11111
2012年12月11日 00点12分 5
ABCDE应该代表不同的数字,问号也代表某个数字
2012年12月11日 02点12分
回复 米内特滴眼泪 :有了侦探小说的背景 我反而觉得这个可能性更大,福尔摩斯应该想错了,未必是要不同的数据
(坏笑)
2012年12月11日 04点12分
回复 war3sgamercom :[瀑布汗~]这是C++题,不是推理题。。。
2012年12月11日 05点12分
level 9
[囧]为什么看到这种应试题我就提不起精神来
2012年12月11日 02点12分 6
level 10
看看,表示无压力
2012年12月11日 03点12分 7
level 10
蓝桥杯?
2012年12月11日 10点12分 10
对啦。。我没打算报名。。基础太弱。。。
2012年12月11日 10点12分
level 9
菜鸟路过~[瞌睡]
2012年12月11日 15点12分 11
1