昨天我解决了一个考试问题,当发现一些非常有趣的东西时(至少对我而言).该程序用于阶乘(非常大),结果是数字末尾有多少个零(在某些情况下2500为零).所以我做了我所能做的,但发现时输入数字,如100 000它恰恰1;30 - 1;33min输出结果.我认为这是因为我的CPU(它不是很快).我已经将.exe发送给我的一些朋友尝试了,因为当我们谈论性能时他们有非常好的PC - 完全相同的结果(1;33min).
我的问题是为什么解决任务的时间是一样的.我知道有更好的方法来编写我的核心所以不会花这么长时间,但这对我来说非常重要,因为我作为初学者程序员可以理解.所以这是我的代码:
static void Main()
{
int num = int.Parse(Console.ReadLine()),
zeroCounter = 0;
BigInteger fact = 1;
var startTime = DateTime.Now;
Console.WriteLine();
for (int i = 1; i <= num; i++)
{
fact *= i;
Console.Write("\r{0}", DateTime.Now - startTime);
}
BigInteger factTarget = fact;
while (factTarget % 10 == 0)
{
factTarget /= 10;
zeroCounter++;
Console.Write("\r{0}", DateTime.Now - startTime);
}
Console.WriteLine();
Console.WriteLine("Result is number with …Run Code Online (Sandbox Code Playgroud) 我刚刚在一个源代码中看到这样的事情:
char[] letters = { 'k', 'n', 'p', 's' };
for (int d1 = 0; d1 < letters.Length; d1++)
{
for (int d2 = 0; d2 < letters.Length; d2++)
{
for (int d3 = 0; d3 < letters.Length; d3++)
{
for (int d4 = 0; d4 < letters.Length; d4++)
{
string left = ""+ letters[d1] + letters[d2] + letters[d3] + letters[d4];
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我真正想知道的是这究竟是多么string strName = "" +....有效.这些是""为了什么?我尽可能地看着,但没有找到答案.很抱歉,如果答案非常简单,我是编程新手,所以我将非常感谢您的理解.