private int[] numbers() { int[] num = new int[0]; for (int i = 1000; i <= 9999; i++) { int q = (int)(i / 1000); int b = (int)((i - q * 1000) / 100); int s = (int)((i - q * 1000 - b * 100) / 10); int g = i - q * 1000 - b * 100 - s * 10; if(i*q==(g*1000+s*100+b*10+q)) { Array.Resize(ref num, num.Length+ 1); num[num.Length - 1] = i; } } return num; }
包括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=1, B=8, C=8, D=1 A=1, B=9, C=9, D=1 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); });
program p95(input,output); var i,a,b,c,d:integer; begin for i:=1023 to 9876 do begin a:=i div 1000;b:=i div 100 mod 10;c:=i div 10 mod 10;d:=i mod 10; if (i*4=d*1000+c*100+b*10+a) then write(i,' '); end; end.
for(int i=1000;i<10000;i++){ int a = i/1000; int b = i%1000/100; int c = i%100/10;}
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); } }
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就不行了
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(); } } }
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哈哈
俺仔细研究了一下 A的平方是不能超过10的(123) AD 对10 取模是A 貌似A=D=1
ls 上说的对其实就是 A=D=1 B=C
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; }
{
int[] num = new int[0];
for (int i = 1000; i <= 9999; i++)
{
int q = (int)(i / 1000);
int b = (int)((i - q * 1000) / 100);
int s = (int)((i - q * 1000 - b * 100) / 10);
int g = i - q * 1000 - b * 100 - s * 10; if(i*q==(g*1000+s*100+b*10+q))
{
Array.Resize(ref num, num.Length+ 1);
num[num.Length - 1] = i;
} }
return num;
}
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=1, B=8, C=8, D=1
A=1, B=9, C=9, D=1
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); });
var i,a,b,c,d:integer;
begin
for i:=1023 to 9876 do
begin
a:=i div 1000;b:=i div 100 mod 10;c:=i div 10 mod 10;d:=i mod 10;
if (i*4=d*1000+c*100+b*10+a) then write(i,' ');
end;
end.
{
string str = count.ToString(); string str1 = str.Substring(0, 1);
string str2 = str.Substring(1, 2);
string str3 = str.Substring(2, 3);
string str4 = str.Substring(3, 4); str str5 = str4 + str3 + str2 + str1; int temp = int.Parse(str1); int sum = count * temp; if (str5 == sum.ToString())
{
// right
}
}
int a = i/1000;
int b = i%1000/100;
int c = i%100/10;}
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);
}
}
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就不行了
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();
}
}
}
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哈哈
A的平方是不能超过10的(123)
AD 对10 取模是A
貌似A=D=1
A=D=1
B=C
->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; }