无意中看到一道算法题,拿出我的解法与大家分享。
题目:输出1,2,3,4四个数字能组成的互不相同且无重复的三位数并统计满足条件的三位数个数
大家先想想,再看答案吧。
View Code
1 /// <summary> 2 /// 计算1,2,3,4产生的组成互不相同的且无重复的3位数个数 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 private void buttonCount_Click(object sender, EventArgs e) 7 { 8 int i, j, k, sum = 0; 9 StringBuilder sb = new StringBuilder(); 10 for (i = 1; i < 5; i++) 11 { 12 for (j = 1; j < 5; j++) 13 { 14 for (k = 1; k < 5; k++) 15 { 16 if(i!=k&&i!=j&&j!=k) 17 { 18 sum++; 19 sb.Append(string.Format("{0}{1}{2}\t",i,j,k)); 20 } 21 } 22 } 23 } 24 MessageBox.Show(sb.ToString()+"\n\n总共:"+sum+" 个", "满足条件的组合", MessageBoxButtons.OK); 25 }