A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 该死的温柔 于 2014-5-14 22:51 编辑

比如说如果有1,2,3三个数字,我要打印到控制台的时候是123,132,231,213,312,321,

10 个回复

倒序浏览
代码如下 仔细想想不难的
  1.                         //第一位数字
  2.                         for (int i = 1; i <= 3; i++) {
  3.                                 //第二位数字
  4.                                 for (int a = 1;a <= 3; a++) {
  5.                                         //第三位数字
  6.                                         if (a==i) {
  7.                                                 continue;
  8.                                         }
  9.                                         for (int b = 1; b <= 3; b++) {
  10.                                                 if (b==a || b == i) {
  11.                                                         continue;
  12.                                                 }
  13.                                                 Console.WriteLine("{0}{1}{2}",i,a,b);
  14.                                         }
  15.                                        
  16.                                 }
  17.                                
  18.                         }
  19.                         Console.ReadKey();
复制代码
回复 使用道具 举报
不小心把注释写错了,第三位数字那个注释是应该写在第三个for上面的
回复 使用道具 举报
林枫 发表于 2014-5-13 18:00
代码如下 仔细想想不难的

想要一个方法,能适应所有数字的组合
回复 使用道具 举报
我不是已经给你思路了吗,就把他封装成一个方法被,不自己思考可不是好习惯
好吧,代码如下
  1. using System;
  2. using System.Collections.Generic;

  3. namespace 输出不同数字
  4. {
  5.         class Program
  6.         {
  7.                 public static List<string> ShuZiZuHe(int zuixiaozhi, int zuidazhi){
  8.                         List<string> suoyoushuzi = new List<string>();
  9.                         for (int i = zuixiaozhi; i <= zuidazhi; i++) {
  10.                                 //第二位数字
  11.                                 for (int a = zuixiaozhi;a <= zuidazhi; a++) {
  12.                                         if (a==i) {
  13.                                                 continue;
  14.                                         }
  15.                                         //第三位数字
  16.                                         for (int b = zuixiaozhi; b <= zuidazhi; b++) {
  17.                                                 if (b==a || b == i) {
  18.                                                         continue;
  19.                                                 }
  20.                                                 suoyoushuzi.Add(String.Format("{0}{1}{2}",i,a,b));
  21.                                         }
  22.                                        
  23.                                 }
  24.                                
  25.                         }
  26.                         return suoyoushuzi;
  27.                 }
  28.                 public static void Main(string[] args)
  29.                 {
  30.                         var suoyou = ShuZiZuHe(1,4); //调用ShuZiZuHe方法获取所有符合规则的数字组合
  31.                         foreach (var element in suoyou) {
  32.                                 //遍历所有的数字组合,把他们输出出来
  33.                                 Console.WriteLine(element);
  34.                         }
  35.                         Console.ReadKey();
  36.                 }
  37.         }
  38. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
张旭辉 + 1

查看全部评分

回复 使用道具 举报 1 0
对了,复制的时候别忘了引用命名空间
using System.Collections.Generic;
要不然要出错的。
思路在这里,想要更高级的功能自己扩展,
比如让用户自己输入范围,只需要声明两个int 变量
int zuixiaozhi,zuidazhi;
Console.WriteLine("请输入最小值");
zuixiaozhi = Convert.ToInt32(Console.ReadLine());
最大值获取方法与最小值相同,为了防止用户调皮不输入数字,最好加上try catch
然后把zuixiaozhi ,zuidazhi这两个变量传递给方法ShuZiZuHe。
有思路了扩展是不是很简单呢?
编程不是学代码,编程学的是思想
知道1+1=2了 就要自己研究1+2=?
回复 使用道具 举报
林枫 中级黑马 2014-5-13 18:34:20
7#
再说一句,编程不是问完别人复制粘贴,而是研究完原理后自己创造,你说对吗朋友?
回复 使用道具 举报
排序原理 就是i个数字之间进行  i次循环,遵循数学上的抽屉原理,一个位置只能有一个数字 并且不能相同,先计算出所有的循环数 再排除不成立的情况 。剩下的就是
回复 使用道具 举报 1 0
林枫 发表于 2014-5-13 18:34
再说一句,编程不是问完别人复制粘贴,而是研究完原理后自己创造,你说对吗朋友? ...

赞一个,值钱的永远不是你的技术有多么的牛,而是遇到一个问题,能马上拿出一套解决问题的方案。
回复 使用道具 举报
    方法很多.....     看你怎么运用知识点....
回复 使用道具 举报
亲,别的同学给你回答问题了,要及时的设置成提问结束哟,这样版主才会给你加分的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马