将 1, 2, ..., 9共 9 个数字分成 3 组,分别组成 3 个三位数,且使这 3 个三位数构成1:2:3 的比例,试求出所有满足条件的 3 个三位数。可能要用到字符串的一些方法:IndexOf查询某个字符或子串的位置,找不到返回-1;Contains查询是否包含某个字符或子串;其它方法请查询帮助文件。 static void Main(string[] args) { for (int a = 101; a < 333; a++) { string str = a.ToString(); if (str.IndexOf('0') > 0) continue; int b = 2 * a; int c = 3 * a; string allchs = $"{a}{b}{c}"; if (allchs.IndexOf('0') > 0) continue; //方法1 char[] chars = allchs.ToCharArray(); Array.Sort(chars); allchs = new string(chars); if (allchs == "123456789") Console.WriteLine($"{a}\t{b}\t{c}"); //方法2 if (allchs.Contains('1') && allchs.Contains('2') && allchs.Contains('3') && allchs.Contains('4') && allchs.Contains('5') && allchs.Contains('6') && allchs.Contains('7') && allchs.Contains('8') && allchs.Contains('9')) Console.WriteLine($"{a}\t{b}\t{c}"); } } //方法3 static bool check(string s) { bool[] arr = new bool[10]; arr[0] = true; for(int i=0;i<9;i++) { if (arr[s[i]-'0']) return false; arr[s[i] - '0'] = true; } return true; }