我有一项任务,我必须从文件中读取文本并将数字提取到DataGrid
,所以我的问题是如何知道DataGrid
需要多少行或/和列看起来不错,并且充满了数字。
所以,如果我有9个数字,网格应该是3x3,或者如果我有18个 - > 6x3等。
数量可以是1到9999999(很多)。
我正在考虑做类似的事情:
int x, i, j; //x-amount of numbers,i-rows,j-columns
while (i * j < a)
{
if (a % 2 == 0)
{
i++;
j++;
}
}
依此类推,对于我能想到的尽可能多的不同情况,最终所有的网格要么是半空的,要么完全破碎,像1x17一样无法使用。
答案 0 :(得分:-1)
检查号码是否为素数。它不能是素数。
检查这个数字是否可以被2到20之间的任何数字整除。因此,假设数字是2378,我们看到2378 = 2 * 1189。通常,行计数始终大于列。列表示字段名称。所以,你有1189行和2列。从20向后开始,因为我们需要显示屏中的最大列。
现在,假设您有8645,8645 = 455 * 19,还有8645 = 1235 * 7.因此,我们选择455 * 19 =&gt; 455行,19列。
现在,您必须处理屏幕分辨率。这是一个棘手的部分。但无论如何,20列在任何分辨率下看起来都合理。使用SystemParameters.FullPrimaryScreenWidth
为您提供帮助。