编程求一个四位自然数ABCD,它乘以A后变成DCBA.

解决方案 »

  1.   

            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;
            }
      

  2.   

    包括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); });
      

  3.   

    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.
      

  4.   

                for (int count = 1000; count <= 9999; count++)
                {
                    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
                    }
                }
      

  5.   

    for(int i=1000;i<10000;i++){
        int a = i/1000;
        int b = i%1000/100;
        int c = i%100/10;}
      

  6.   

    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);
      }
    }
      

  7.   

    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就不行了
      

  8.   

    . 没理清题目.. 刚反应过来.A是已知变量. 求未知变量 abcdA这个已知变量 和ABCD中的A是同一个吗?
      

  9.   

    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();
            }
        }
    }
      

  10.   

    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哈哈
      

  11.   

    俺仔细研究了一下
    A的平方是不能超过10的(123)
    AD 对10 取模是A
    貌似A=D=1
      

  12.   

    ls 上说的对其实就是
    A=D=1
    B=C
      

  13.   

    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;        }