【发布时间】:2018-12-12 03:43:36
【问题描述】:
我正在尝试获取用户提供的数字的所有因素,然后单击按钮在 MessageBox 上显示所有因素。
这就是 my code 代码取自 Mark Byers 的 Getting Factors of a Number 答案的样子,我认为我非常接近,但我显示的是因子数而不是实际因子数.
例如,如果用户输入 10 并单击按钮,MessageBox 会显示数字 4,但我希望它显示 10 的实际因数,应该是 1、2、5、10。
*如何显示因子?
public int Divisors(int fact)
{
int number = int.Parse(textBox2.Text);
int factorCount = 0;
int sqrt = (int)Math.Ceiling(Math.Sqrt(number));
for (int i = 1; i < sqrt; i++)
{
if (number % i == 0)
{
factorCount += 2; // We found a pair of factors.
}
}
// Check if our number is an exact square.
if (sqrt * sqrt == number)
{
factorCount++;
}
return factorCount;
}
private void ShowallButton_Click(object sender, EventArgs e)
{
int input = int.Parse(textBox2.Text);
double output = Divisors(input);
MessageBox.Show(+output + "");
}
【问题讨论】:
-
不更新因子计数,为什么不将因子存储在数组中,然后显示该数组(可能通过转换为字符串)。
-
您还需要将for循环更正为
for (int i = 1; i <= number; i++) -
好吧....我还是 C# 的新手,我还没有真正弄清楚如何使用数组....
-
你可以通过解决这个问题来开始解决这个问题......如果不是数组,你可以使用字符串来生成输出并从方法中返回。
-
我严重怀疑它是“你的代码”:stackoverflow.com/questions/4549482/getting-factors-of-a-number。所以复制/粘贴代码时需要署名 - 署名已编辑。