黑马程序员技术交流社区

标题: 1、2、3、4这个四个数能组成多少个不同的三位数 [打印本页]

作者: xinchenglong    时间: 2013-8-26 14:27
标题: 1、2、3、4这个四个数能组成多少个不同的三位数
昨天在做入学测试的时候,我采用的方式是,三个for循环嵌套,然后再做下判断。我认为这种方式很容易理解,不知道各位前辈除了用for循环的这种方式外,还有其他方法吗?
作者: .....淡定    时间: 2013-8-26 14:59
三重for循环,暂时没有想到其他的。
作者: .....淡定    时间: 2013-8-26 14:59
三重for循环,暂时没有想到其他的。
作者: xinchenglong    时间: 2013-8-26 15:02
好吧,还是要谢谢你,这种方法应该是最普遍的吧!!
作者: 小天    时间: 2013-8-27 12:15
我感觉for循环更简单一些
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace test6
  6. {
  7.     class Program
  8.     {
  9.         public static int[] yue = new int[13];
  10.         static void Main(string[] args)
  11.         {
  12.             //1、2、3、4这个四个数能组成多少个不同的三位数
  13.             int[] nums = { 1, 2, 3, 4 };
  14.             for (int i = 0; i < nums.Length; i++)
  15.             {
  16.                 for (int j = 0; j < nums.Length; j++)
  17.                 {
  18.                     if (nums[i] == nums[j])
  19.                     {
  20.                         continue;
  21.                     }
  22.                     for (int m = 0; m < nums.Length; m++)
  23.                     {
  24.                         if (nums[i] == nums[m]||nums[j]==nums[m])
  25.                         {
  26.                             continue;
  27.                         }
  28.                         Console.WriteLine(nums[i] + "" + nums[j]+""+nums[m]);
  29.                     }
  30.                 }
  31.             }
  32.                 Console.ReadKey();
  33.         }
  34.     }
  35. }
复制代码

作者: 心动行动    时间: 2013-8-27 23:42
研究了一下,这样可以
int[] nums = { 1, 2, 3, 4 };
            List<int> list = new List<int>();
            for (int i = 100; i < 1000; i++)//三位数 100到999
            {
                int ge = i % 10;
                int shi = i % 100 / 10;
                int bai = i / 100;
                //如果个十百位等不相等并且都在1到4的范围内,添加到集合
                if (ge != shi && ge != bai && shi != bai&&ge>=1&&shi>=1&&bai>=1&&ge<=4&&shi<=4&&bai<=4)
                {
                    list.Add(i);
                }
            }
            for (int i = 0; i < list.Count; i++)
            {
                Console.Write(list[i]+" ");
            }
            Console.ReadKey();
作者: 心动行动    时间: 2013-8-27 23:44
你看下我的好不好理解
作者: 小天    时间: 2013-8-28 10:51
心动行动 发表于 2013-8-27 23:44
你看下我的好不好理解

值得学习
作者: 科大涛哥    时间: 2013-8-31 13:08
class Program
    {
        static void Main(string[] args)
        {
            int i, j, k;
            for (i = 1; i < 5; i++)
            {
                for (j = 1; j < 5; j++)
                {
                    for (k = 1; k < 5; k++)
                    {
                        if (i != j && i != k && j != k)
                        {
                            Console.WriteLine(i.ToString() + j.ToString() + k.ToString());
                           
                        }
                        
                    }
                }
            }
            Console.ReadKey();
        }
    }
作者: 帕格尼尼的眼泪    时间: 2013-9-1 00:11
//1、2、3、4这个四个数能组成多少个不同的三位数
     static void Main(string[] args)
        {

            //1、2、3、4这个四个数能组成多少个不同的三位数
            int a = 0;//接收百位上的数
            int b = 0;//接收十位上的数
            int c = 0;//接收个位上的数


            for (int i = 1; i <= 4; i++)//遍历百位上的数
            {
                a = i;
                for (int j = 1; j <= 4; j++)//遍历十位上的数
                {
                    if (i == j)//阻止百位与十位相同,
                    {
                        continue;
                    }
                    b=j;
                    for (int k = 1; k <= 4; k++)//遍历个位上的数
                    {
                        if (i == k || j == k)//阻止百位与个位相同,和十位与个位相同
                        {
                            continue;
                        }
                        c=k;
                        Console.WriteLine("{0}{1}{2}",a,b,c);
                    }
                  
                }
               
            }
            
            Console.ReadKey();
        }




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2