10分钟时间,根据上排给出十个数,在其下排填出对应的十个数
要求下排每个数都是先前上排那十个数在下排出现的次数。
上排的十个数如下:
【0,1,2,3,4,5,6,7,8,9】
举一个例子,
数值: 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次....
要求下排每个数都是先前上排那十个数在下排出现的次数。
上排的十个数如下:
【0,1,2,3,4,5,6,7,8,9】
举一个例子,
数值: 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次....
以此类推..
#include <stdio.h>
#define BOTTOM_LEN 10
int top[BOTTOM_LEN];
int bottom[BOTTOM_LEN];
int success;
int* getBottom();
void setNextBottom();
int getFrequecy(int num);
int* getBottom()
{
int i = 0;
while(!success)
{
i++;
setNextBottom();
}
return bottom;
}
void setNextBottom()
{
int reB = 1;
int i = 0;
for(i=0; i<BOTTOM_LEN; i++)
{
int frequecy = getFrequecy(i);
if(bottom[i] != frequecy)
{
bottom[i] = frequecy;
reB = 0;
}
}
success = reB;
}
int getFrequecy(int num)
{
int count = 0;
int i = 0;
for(i=0; i<BOTTOM_LEN; i++)
{
if(bottom[i] == num)
count++;
}
return count;
}
int main()
{
int i = 0;
success = 0;
int* result= getBottom();
for(i=0; i < BOTTOM_LEN; i++)
{
printf("%d ", *result++);
}
printf(
"\n");
return 0;
}