【问题标题】:C# Combinations of integersC# 整数组合
【发布时间】:2012-09-22 08:01:51
【问题描述】:

我想使用单个整数选择整数组合
就像我有一个号码 1234.. 现在我想要的是:1,2,3,4,12,23,34,123,234,1234

请帮忙..??

【问题讨论】:

  • 这看起来像“1234”的所有子字符串。
  • 必须从左到右迭代,并且只能使用连续的数字...

标签: c# .net integer permutation combinations


【解决方案1】:

如果我理解正确,您需要给定字符串的所有子字符串(在本例中为数字 1234)。因此,对于长度为 n 的字符串,有 n 个长度为 1 的子字符串,n - 1 个长度为 2 的子字符串,依此类推,直到一个子字符串长度 n.

鉴于您可以使用两个嵌套循环轻松解决此问题,例如:

public static IEnumerable<int> Foo(int x) {
  string s = x.ToString();
  for (int length = 1; length <= s.Length; length++) {
    for (int i = 0; i + length < s.Length; i++) {
      yield return int.Parse(s.Substring(i, length));
    }
  }
}

(未经测试,可能存在围栏错误,但您明白了。)

【讨论】:

  • 是的,看起来很有用……让我想想
【解决方案2】:

Permutations, Combinations, and Variations using C# Generics上的这篇文章怎么样

用代码讨论排列和组合。

【讨论】:

  • 对不起,哈桑,我误解了你的问题。精彩的文章虽然:) 我现在正在通过它来寻找乐趣......
  • 谢谢...@Joey 解决了它.. :)
猜你喜欢
  • 1970-01-01
  • 2023-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-15
相关资源
最近更新 更多