本帖最后由 菜鸟励志要逆袭 于 2013-7-2 20:57 编辑  
 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
namespace test7 
{   ///<summary> 
    ///有1、2、3、4  四个数字,编程实现能组成多少个互不相同且无重复数字的三位数?都是多少? 
    ///</summary>> 
    class Program 
    { 
        static void Main(string[] args) 
        { 
            Program P = new Program(); 
            int n; 
            n = P.result(out n); 
            Console.WriteLine("1 2 3 4能组成的互不相同且无重复数字的三位数个数为:"); 
            Console.WriteLine(n); 
            int[] resultArray = new int[n]; 
            P.printArray(resultArray); 
            Console.WriteLine("满足条件的数字如下:"); 
            for (int i = 0; i < resultArray.Length; i++)  
            { 
                Console.Write(resultArray+"\t"); 
            } 
             
            Console.ReadKey(); 
        } 
        #region  返回能组成题目数字的个数 
        int  result(out int n) 
        { 
            n = 0; 
            int[] intArray = new int[4] { 1, 2, 3, 4 }; 
            //进行三次循环,来确定满足题目要求的数字个数 
            for (int i = 0; i < intArray.Length; i++) 
            { 
                for (int j = 0; j < intArray.Length; j++) 
                { 
                    for (int k = 0; k < intArray.Length; k++) 
                    { 
                        if ((intArray != intArray[j]) && (intArray[j] != intArray[k]) && (intArray != intArray[k])) 
                            n++; 
                    } 
                } 
            } 
            return n; 
        } 
        #endregion 
        #region 把满足要求的数字放到一个数组中 
        //三次循环,来把满足要求的数字存放到一个数组中,然后返回这个数组 
        int[] printArray(int[] resultArray) 
        { 
            int[] intArray = new int[4] { 1, 2, 3, 4 }; 
            int n = 0; 
            for (int i = 0; i < intArray.Length; i++) 
            { 
                for (int j = 0; j < intArray.Length; j++) 
                { 
                    for (int k = 0; k < intArray.Length; k++) 
                    { 
                        if ((intArray != intArray[j]) && (intArray[j] != intArray[k]) && (intArray != intArray[k])) 
                        { 
                            resultArray[n] = intArray * 100 + intArray[j] * 10 + intArray[k]; 
                            n++; 
                        } 
                    } 
                } 
            } 
            return resultArray; 
        } 
        #endregion 
    } 
} 
 |