急,求解一道C#编程题!

a124699279 2011-03-03 05:51:59
编程求一个四位自然数ABCD,它乘以A后变成DCBA.
...全文
381 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
mayuliuze 2011-03-04
  • 打赏
  • 举报
回复
hiehie manhao
sugarforever 2011-03-04
  • 打赏
  • 举报
回复
遍历1000-9999的整数,应该很快就能有结果吧。
一笑奈何 2011-03-04
  • 打赏
  • 举报
回复
恩,都是大神
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sp1234 的回复:]

包括0就简单一些了。结果为:

A=0, B=0, C=0, D=0
A=1, B=0, C=0, D=1
A=1, B=1, C=1, D=1
A=1, B=2, C=2, D=1
A=1, B=3, C=3, D=1
A=1, B=4, C=4, D=1
A=1, B=5, C=5, D=1
A=1, B=6, C=6, D=1
A=1, B=7, C=7, D=1
A……
[/Quote]
这个学习了,哈哈
IT0329 2011-03-04
  • 打赏
  • 举报
回复
zzmsyt 2011-03-04
  • 打赏
  • 举报
回复
var dsmetty = from A in Enumerable.Range(0, 10)
from B in Enumerable.Range(0, 10)
from C in Enumerable.Range(0, 10)
from D in Enumerable.Range(0, 10)
where (A * 1000 + B * 100 + C * 10 + D) * A == D * 1000 + C * 100 + B * 10 + A
select new { A, B, C, D };
dsmetty.ToList().ForEach(x => { Console.WriteLine("A={0}, B={1}, C={2}, D={3}", x.A, x.B, x.C, x.D); });

正好学习下linq哈哈
xdrong 2011-03-04
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace reserve
{
class Program
{
static void Main(string[] args)
{
for (int num = 1000; num < 10000; num++)
{
int A = num / 1000; int Amod = num%1000;
int B = Amod / 100; int Bmod = Amod % 100;
int C = Bmod / 10;
int D = Bmod % 10;
int Newnum = num * A;
if (Newnum > 9999)
break;
if(Newnum == D*1000+C*100+B*10+A)
Console.WriteLine("{0}{1}{2}{3}", A,B,C,D);

}
Console.ReadKey();
}
}
}
人工智能算法 2011-03-04
  • 打赏
  • 举报
回复
. 没理清题目.. 刚反应过来.

A是已知变量. 求未知变量 abcd

A这个已知变量 和ABCD中的A是同一个吗?
人工智能算法 2011-03-04
  • 打赏
  • 举报
回复
[Quote=引用楼主 a124699279 的回复:]
编程求一个四位自然数ABCD,它乘以A后变成DCBA.
[/Quote]

不一定都有结果吧? 9199 * ? = 9919 ?
人工智能算法 2011-03-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sp1234 的回复:]
包括0就简单一些了。结果为:

A=0, B=0, C=0, D=0
A=1, B=0, C=0, D=1
A=1, B=1, C=1, D=1
A=1, B=2, C=2, D=1
A=1, B=3, C=3, D=1
A=1, B=4, C=4, D=1
A=1, B=5, C=5, D=1
A=1, B=6, C=6, D=1
A=1, B=7, C=7, D=1
A=……
[/Quote]
var dsmetty = from A in Enumerable.Range(0, 10)
from B in Enumerable.Range(0, 10)
from C in Enumerable.Range(0, 10)
from D in Enumerable.Range(0, 10)
where (A * 1000 + B * 100 + C * 10 + D) * A == D * 1000 + C * 100 + B * 10 + A
select new { A, B, C, D };
dsmetty.ToList().ForEach(x => { Console.WriteLine("A={0}, B={1}, C={2}, D={3}", x.A, x.B, x.C, x.D); });


写法不错 挺前卫 不过得看楼主家用的是vs2008以上版本不... 万一是2005呢? 您这个linq就不行了

VCACC 2011-03-04
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sp1234 的回复:]

包括0就简单一些了。结果为:

A=0, B=0, C=0, D=0
A=1, B=0, C=0, D=1
A=1, B=1, C=1, D=1
A=1, B=2, C=2, D=1
A=1, B=3, C=3, D=1
A=1, B=4, C=4, D=1
A=1, B=5, C=5, D=1
A=1, B=6, C=6, D=1
A=1, B=7, C=7, D=1
A……
[/Quote]

又见大牛,膜拜
luoyiaibaobao 2011-03-04
  • 打赏
  • 举报
回复
都好暴力!
kid_wang 2011-03-04
  • 打赏
  • 举报
回复
ABCD×A = DCBA
->A方BCD=DCBA
->
A方=D 1
B=C 2
C=B 3
D=A 4

有1、4 ->A=1=D
2、3恒等 ->B=C=1~9任意值
->

private List<int[]> kid()
{
int[] A = new int[9] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] B = new int[9] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] C = new int[9] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int[] D = new int[9] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
List<int[]> e = new List<int[]>();

foreach (int a in A)
{
foreach (int b in B)
{
foreach (int c in C)
{
foreach (int d in D)
{
if (a * a / d == 1 && b == c && c == b && d == a)
{
int[] cc = { a, b, c, d };
e.Add(cc);
}

}
}
}
}

return e;

}

mygmh 2011-03-04
  • 打赏
  • 举报
回复
ls 上说的对

其实就是
A=D=1
B=C
咸清 2011-03-04
  • 打赏
  • 举报
回复
俺仔细研究了一下
A的平方是不能超过10的(123)
AD 对10 取模是A
貌似A=D=1
咸清 2011-03-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lyou250 的回复:]

C# code
private int[] numbers()
{
int[] num = new int[0];
for (int i = 1000; i <= 9999; i++)
{
int q = (int)(i / 1000);
……
[/Quote]
i 肯定小于3200嘛
yutian_31 2011-03-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lyou250 的回复:]
C# code
private int[] numbers()
{
int[] num = new int[0];
for (int i = 1000; i <= 9999; i++)
{
int q = (int)(i / 1000);
……
[/Quote]

还是这个好啊
hoken2020856 2011-03-03
  • 打赏
  • 举报
回复

[Quote=引用 5 楼 sp1234 的回复:]
包括0就简单一些了。结果为:

A=0, B=0, C=0, D=0
A=1, B=0, C=0, D=1
A=1, B=1, C=1, D=1
A=1, B=2, C=2, D=1
A=1, B=3, C=3, D=1
A=1, B=4, C=4, D=1
A=1, B=5, C=5, D=1
A=1, B=6, C=6, D=1
A=1, B=7, C=7, D=1
A=……
[/Quote]
浮沉-- 2011-03-03
  • 打赏
  • 举报
回复
for(int i=1000;i<10000;i++){
int a = i/1000;
int b = i%1000/100;
int c = i%100/10;
int d = i%10;
if(i*a == (d*1000+c*100+b*10+a)){
write(i);
}
}
浮沉-- 2011-03-03
  • 打赏
  • 举报
回复
for(int i=1000;i<10000;i++){
int a = i/1000;
int b = i%1000/100;
int c = i%100/10;

}
加载更多回复(10)

110,501

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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