面试题目求解,求教,为什么得不出结果?哪里错了?

diyemei 2007-09-14 06:56:02
一个五位数字ABCDE*4=EDCBA,这五个数字不重复,请编程求出来
以下是我的代码#include <iostream>
#include <cstdlib>

int main()
{
int A,B,C,D,E;
int i,j;
for(A=1; A<10;A++)
for(B=0;B!=A&&B<10;B++)
for(C=0;C!=B&&C!=A&&C<10;C++)
for(D=0;D!=C&&D!=B&&D!=A&&D<10;D++)
for(E=1;E!=D&&E!=C&&E!=B&&E!=A&&E<10;E++)
{
i = 4 * (10000 * A + 1000 * B + 100 * C + 10 * D + E);
j = 10000 * E + 1000 * D + 100 * C + 10 * B + A;
if(i == j)printf("%d%d%d%d%d\n",A,B,C,D,E);
}
system("pause");
return 0;
}

我写的好象得不出结果???
怎么回事情啊?
我用的是DEV-CPP
...全文
220 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
flyingwow99 2007-12-17
  • 打赏
  • 举报
回复
sanyuesanshi
有大局观
diyemei 2007-09-14
  • 打赏
  • 举报
回复
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int A,B,C,D,E;
int i,j;
for(A=1; A<10;A++)
{
for(B=0;B<10;B++)
{
if (B == A) continue;
for(C=0;C!=A&&C!=B&&C<10;C++)
{
if (C == A||C == B) continue;
for(D=0;D<10;D++)
{
if (D == A||D == B||D == C) continue;
for(E=1;E<10;E++)
{
if (E == A||E == B||E == C||E == D) continue;
i = 4 * (10000 * A + 1000 * B + 100 * C + 10 * D + E);
j = (10000 * E + 1000 * D + 100 * C + 10 * B + A);
if(i == j)cout<<A<<B<<C<<D<<E;
}
}
}
}
}
system("pause");
return 0;
}

还是没结果/怎么改
diyemei 2007-09-14
  • 打赏
  • 举报
回复
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int A,B,C,D,E;
int i,j;
for(A=1; A<10;A++)
{
for(B=0;B<10;B++)
{
if (B == A) continue;
for(C=0;C!=A&&C!=B&&C<10;C++)
{
if (C == A&&C == B) continue;
for(D=0;D<10;D++)
{
if (E == A&&E == B&&E == C) continue;
for(E=1;E<10;E++)
{
i = 4 * (10000 * A + 1000 * B + 100 * C + 10 * D + E);
j = (10000 * E + 1000 * D + 100 * C + 10 * B + A);
if(i == j)cout<<A<<B<<C<<D<<E;
}
}
}
}
}
system("pause");
return 0;
}



还是不行啊.老样子
diyemei 2007-09-14
  • 打赏
  • 举报
回复
说明白点啊!!!!
风云剑客 2007-09-14
  • 打赏
  • 举报
回复
结果是?
yangsf5 2007-09-14
  • 打赏
  • 举报
回复
B!=A
当B==A,就退出循环了
gfxiang 2007-09-14
  • 打赏
  • 举报
回复
for(B=0;B!=A&&B<10;B++)
=======
for(B=0; B<10; B++)
{
if (B == A) continue; // 里面几个循环相同处理
// ...
}
rand0941 2007-09-14
  • 打赏
  • 举报
回复
因为4a=e,所以a=1或2
又应为4e%10=a;a为偶数,所以a=2,e=8
#include "iostream.h"

void main()
{
for(int b=0;b<10;b++)
{
for(int c=0;c<10;c++)
{
for(int d=0;d<10;d++)
{
if((4000*b+400*c+40*d+32)==(1000*d+100*c+10*b+2))
cout<<"2"<<b<<c<<d<<"8";
}
}
}
}
sanyuesanshi 2007-09-14
  • 打赏
  • 举报
回复
lz写的好繁啊
#include "stdafx.h"
#include <iostream>
using std::cout;
int main(){
for(int i=10000;i<100000;i++){
int j=0;
int t=i;
while(t!=0){
j=j*10+t%10;
t/=10;
}
if((i<<2)==j){
cout<<i;
break;
}
}

}
虽然复杂度是一样的,但代码看上去要清爽一点

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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