C# C中的Euler#4项目#

C# C中的Euler#4项目#,c#,C#,我正在尝试用C语言处理Euler问题4。我遇到的问题是,当代码运行时,控制台窗口会短暂出现,然后消失。我不知道问题可能是什么,因为我对编程相对来说比较陌生 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program {

我正在尝试用C语言处理Euler问题4。我遇到的问题是,当代码运行时,控制台窗口会短暂出现,然后消失。我不知道问题可能是什么,因为我对编程相对来说比较陌生

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 1000; i > 100; i--)
                for (int j = 1000; j > 100; j--)
                    PalCheck(i * j);
        }

        static void PalCheck(int original)
        {
            var reversed = new string(Convert.ToString(original).ToCharArray().Reverse().ToArray());

            if (Convert.ToString(original) == reversed)
                Console.WriteLine(original);

            Console.ReadKey();
        }
    }
}

代码似乎卡在了线路上 ReadKey()在这一行代码中,程序正在等待一些输入键。 由于您在ReadKey()之前没有使用任何消息,因此您没有意识到程序正在等待某些输入而没有被卡住


在PalCheck(i*j)之后移动Console.ReadKey(),您将在控制台屏幕上看到输出。

您希望发生什么?你能使问题发生/消失的最小程序是什么?如果您在程序结束前等待用户输入,该怎么办?(“按任意键继续…)?我希望它写出两个三位数中最大的回文。(因此从1000X1000开始倒计时)线路控制台。ReadKey();应该等待用户输入。您是否尝试过使用带有多个断点的调试器来了解发生了什么事?@Pierre Luccinoult没有,因为我也不知道怎么做。我想我有什么要读的,“两个三位数”。你是说
j
的上限是
10000
而不是
1000
?不确定这是否重要…在Palcheck(i*j)之后移动Console.ReadKey()返回所有回文的列表,这些回文是三位数的乘积。它解决了控制台快速出现的问题,但没有给出答案。如果您想在第一次有效检查后停止,您需要确保只有在满足
If
语句后才执行
ReadKey
-使用
{}
…我在If语句中添加了括号,并放置了console.GetKey()括号内的线。现在,每次我按一个键,它都会返回一个回文。我在按了几次键后看到了正确的答案,但这并不是第一个结果。而且这个列表似乎永远在继续,按住一个键只会让它运行。