当前位置:  开发笔记 > 编程语言 > 正文

计算可以添加三个数字的方式,使它们等于1000

如何解决《计算可以添加三个数字的方式,使它们等于1000》经验,为你挑选了2个好方法。

我需要创建一个程序来计算你可以添加三个数字的方式,使它们等于1000.

我认为这段代码应该可行,但它不会写出任何东西.我究竟做错了什么?任何提示或解决方案?

using System;

namespace ConsoleApp02
{
    class Program
    {
        public static void Main(string[] args)
        {
            for(int a = 0; a < 1000; a++)
            {
                for(int b = 0; b < 1000; b++)
                {
                    for(int c = 0; c < 1000; c++)
                    {
                        for(int puls = a + b + c; puls < 1000; puls++)
                        {
                            if(puls == 1000)
                            {
                                Console.WriteLine("{0} + {1} + {2} = 1000", a, b, c);
                            }
                        }
                    }
                }
            }
            Console.ReadKey(true);
        }
    }
}

mqp.. 16

你最内层的循环(迭代puls变量)并没有任何意义,因为它上面的条件(puls < 1000)Console.WriteLine永远不会运行.

也许您应该测试A + B + C是否为1000.

此外,由于循环的界限(取决于问题陈述),您会发现可能缺少一些特定的数字组合.



1> mqp..:

你最内层的循环(迭代puls变量)并没有任何意义,因为它上面的条件(puls < 1000)Console.WriteLine永远不会运行.

也许您应该测试A + B + C是否为1000.

此外,由于循环的界限(取决于问题陈述),您会发现可能缺少一些特定的数字组合.



2> Franci Penov..:

另外,这个特定的实现,虽然它可以工作(通过其他答案建议的修改),但由于算法的复杂性为O(n ^ 3),因此性能受到很大影响.换句话说,你正在经历最里面的检查.

这里有一个暗示如何将它优化到至少O(n ^ 2)或仅一个百万次迭代:对于由两个外部for循环生成的每对ab,c只有一个值将导致1000.

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有