桥本分数式--递归回溯

来源:互联网 发布:nc 5.7 启动数据库 编辑:程序博客网 时间:2024/04/29 06:43

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace __桥本分数式
{
    class Program
    {
        int[] a = new int[10];
        int i, j, u, m1, m2, m3, s = 0;
        static void Main(string[] args)
        {
            Program p = new Program();
            Console.WriteLine(p.GetResult(1));
            Console.ReadKey();
        }

        public int GetResult(int k)
        {

            for (int i = 1; i <= 9; i++)//a[k]的值为i
            {
                a[k] = i;
                for (u = 0, j = 1; j <= k - 1; j++)//a[k]前面的为a[j];
                {
                    if (a[k] == a[j])
                    {
                        u = 1;
                    }
                }
                if (u == 0)
                {
                    if ((k == 9))
                    {
                        if (a[1] < a[4])
                        {
                            m1 = a[2] * 10 + a[3];
                            m2 = a[5] * 10 + a[6];
                            m3 = a[8] * 10 + a[9];
                            if (a[1] * m2 * m3 + a[4] * m1 * m3 == a[7] * m1 * m2)
                            {
                                s++;
                                Console.WriteLine("{0}/{1}{2}+{3}/{4}{5}={6}/{7}{8}",a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]); 
                            }

                        }
                    }
                    else
                    {
                        GetResult(k + 1);
                    }
                }

            }
            return s;
        }
    }
}

 

 

 

1 0
原创粉丝点击