两个(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);
}
}
}
我对如何使这个算法更有效感兴趣。
holdtom
相关分类