给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数 要求下排每个数都是先前上排那十个数在下排出现的次数。 上排的十个数如下:
【0,1,2,3,4,5,6,7,8,9】
初看此题,貌似很难,10分钟过去了,可能有的人,题目都还没看懂。
举一个例子,
数值: 0,1,2,3,4,5,6,7,8,9 分配: 6,2,1,0,0,0,1,0,0,0
0在下排出现了6次,1在下排出现了2次, 2在下排出现了1次,3在下排出现了0次.... 以此类推..
private static int length = 9;
int[] top = new int[length];
int[] bottom = new int[length];
bool success;
protected void Page_Load(object sender, EventArgs e)
{
int i;
InitNum();
SetBottomNum();
for (i = 0; i < length; i++)
Response.Write(bottom[i]);
}
/// <summary>
/// 初始化上下排数组
/// </summary>
private void InitNum()
{
int i;
success = false;
for (i = 0; i < length; i++)
{
top[i] = i;
bottom[i] = i;
}
}
/// <summary>
/// 获取频率
/// </summary>
/// <param name="num"></param>
/// <returns></returns>
private int GetFrequecy(int num)
{
int i;
int count = 0;
for (i = 0; i < length; i++)
{
if (bottom[i] == num)
count++;
}
return count;
}
/// <summary>
/// 设置下排数组
/// </summary>
private void SetBottomNum()
{
int i;
int frequecy;
while (!success)
{
bool temp = true; for (i = 0; i < length; i++)
{
frequecy = GetFrequecy(i);
if (bottom[i] != frequecy)
{
bottom[i] = frequecy;
temp = false;
}
}
success = temp;
}
}
}
140

被折叠的 条评论
为什么被折叠?



