我正在尝试用C#编写代码,但是我在查找算法时遇到了问题。 目标是编写一个函数,该函数将整数作为参数并返回Integerarray(返回2个整数)。
此函数应找到输入数字的有效模数计算,其结果(提醒)与输入数字相同。
例如我的输入是数字5。 现在应该找到一个有效的模数计算,其结果是5。 例如12%7 = 5。 所以函数应该返回12和7。 如何找到与输入数字具有相同结果的模数和分频器? 我无法显示任何代码,因为我不知道如何开始编码。 很酷的是有人可以帮助我。
答案 0 :(得分:0)
步骤1.选择一个数字,这将是您的第一个输出数字。步骤2从该数字中减去输入,这将是您的其他输出数字
答案 1 :(得分:0)
认为问题应该是:
x%y=z
x,z
知道y
未知z
已知且x,y
未知,如OP文本中所述展位案例
示例 a):
const int max=1024; // some solution constraint ...
int imod(int x,int z)
{
if (z==0) return x; // if no remainder then solution is any multiple of x
for (int y=z+1;y<max;y++) if (x%y==z) return y;
return 0; // no solution found
}
y > z
示例 b):
void imod(int &x,int &y,int z)
{
// this is not brute-force because the solution is trivial from the conditions stated in OP
x=z;
y=z+1;
}
[注释]
x>=y
,这样你就可以递归地找到O(log(N))中的匹配O(N)...