Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C程序,返回不工作的数字的摩尔斯电码_C# - Fatal编程技术网

C# C程序,返回不工作的数字的摩尔斯电码

C# C程序,返回不工作的数字的摩尔斯电码,c#,C#,我试着做一个程序,当给定一个4位数的数字时,比如1001,它对该数字的位数求和,对于1001,这是1+0+0+1=2,然后它找到从1到6的6个数字的所有序列,包括排列,即1*1*1*1*1*2不同于2*1*1*1*1*1,其乘积就是那个数字 结果应以以下格式打印在控制台上:每6个数字的序列及其莫尔斯表示,用一根管道隔开:1是。--,2是…:--------------------------------------------,在新行上的下一个排列:。----------------------

我试着做一个程序,当给定一个4位数的数字时,比如1001,它对该数字的位数求和,对于1001,这是1+0+0+1=2,然后它找到从1到6的6个数字的所有序列,包括排列,即1*1*1*1*1*2不同于2*1*1*1*1*1,其乘积就是那个数字

结果应以以下格式打印在控制台上:每6个数字的序列及其莫尔斯表示,用一根管道隔开:1是。--,2是…:--------------------------------------------,在新行上的下一个排列:。----------------------------------------------------------------,依此类推

问题是,我的解决方案没有显示正确的答案,甚至没有显示正确的答案数量

这是我的代码,如果可能的话,请告诉我我的错误在哪里,而不是LINQ和regex问题的一些单行黑客解决方案,天知道是什么:

        string n = Console.ReadLine();
        string[] digitsChar = new string[n.Length];
        for (int i = 0; i < 4; i++)
        {
            digitsChar[i] = n[i].ToString();
        }
        int[] digits = new int[digitsChar.Length];
        for (int i = 0; i < 4; i++)
        {
            digits[i] = Convert.ToInt32(digitsChar[i]);
        }

        int morseProduct = digits.Sum();
        Console.WriteLine(morseProduct);

        List<int> morseCodeNumbers = new List<int>();

        for (int i = 1; i < 6; i++)
        {
            for (int j = 1; i < 6; i++)
        {
                for (int k = 1; i < 6; i++)
        {
                    for (int l = 1; i < 6; i++)
        {
                        for (int m = 1; i < 6; i++)
        {
                            for (int o = 1; o < 6; o++)
                            {
                                int product = i * j * k * l * m * o;
                                if (product == morseProduct)
                                {
                                    morseCodeNumbers.Add(i);
                                    morseCodeNumbers.Add(j);
                                    morseCodeNumbers.Add(k);
                                    morseCodeNumbers.Add(l);
                                    morseCodeNumbers.Add(m);
                                    morseCodeNumbers.Add(o);
                                }
                            }
                        }
                    }
                }
            }            
        }

        int numberOfNumbers = morseCodeNumbers.Count;
        string[] morseCodes = new string[] { "-----", ".----", "..---", "...--", "....-", "....." };

        for (int i = 0; i < numberOfNumbers; i++)
        {
            int counter = 0;
            if (i % 5 == 0)
            {
                Console.WriteLine();
                counter = 0;
            }
            if (counter < 5)
            {
                int index = morseCodeNumbers[i];
                Console.Write(morseCodes[index] + "|");
                counter++;
            }

很多for循环条件指的是i,而不是j、k、l和m。增量部分也是如此。例如:

for (int j = 1; i < 6; i++)

你的样品似乎有问题。它们只包含5个数字。对吗?谢谢!复制粘贴循环条件的危险:D
for (int j = 1; j < 6; j++)
for (int i = 1; i <= 6; i++)
for (int i = 0; i < 4; i++)
{
    digitsChar[i] = n[i].ToString();
}
int[] digits = new int[digitsChar.Length];
for (int i = 0; i < 4; i++)
{
    digits[i] = Convert.ToInt32(digitsChar[i]);
}
var digits = n.Select(c=>(int)char.GetNumericValue(c) ).ToArray();