为了账号安全,请及时绑定邮箱和手机立即绑定

让算法更高效

让算法更高效

C#
慕码人8056858 2021-07-13 14:01:26
两个(2 位)数字写在一起,所以它们形成一个 4 位数字。这个 4 位数字可以被这两个数字的乘法相除。问题是我必须找到这个数字。我写了一个算法并得到了 2 对这些数字。1) 13 和 52,所以 1352 可以除以 13 * 52。2) 17 和 34,所以 1734 可以除以 17 * 34。我的算法是这样的:for (int i = 1010; i <= 9999; i++){    int mult = (i / 100) * (i % 100);    if ((i % 100) > 9 && i % mult == 0)    {        Console.WriteLine(i / 100 + " <--> " + i % 100);    }}编辑:使用这个算法(基于mentallurg答案)我发现这个数字快了一点for (int i = 10; i < 99; i++){    for (int j = 10; j < 99; j++)    {        int mult = i * j;        int num = i * 100 + j;        if (num % mult == 0)        {           Console.WriteLine(i + " <--> " + j);        }    }}我对如何使这个算法更有效感兴趣。
查看完整描述

3 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

使用从 1 到 99 的 2 个嵌套循环,您将避免在每个步骤上进行两次除法运算。


查看完整回答
反对 回复 2021-07-18
  • 3 回答
  • 0 关注
  • 207 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信