腾讯面试题:
给你10分钟时间,根据上排给出十个数,在其下排填出对应的十个数
要求下排每个数都是先前上排那十个数在下排出现的次数。
上排的十个数如下:
给你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次....
以此类推..
#include <stdio.h>
#include <stdlib.h>
main(){
int top[10] = {0,1,2,3,4,5,6,7,8,9};
int bottom[10] = {0};
bool changed = true;
int i,j,count;
while(changed){
changed = false;
for(i=0;i<10;i++){
count = 0;
for(j=0;j<10;j++){
if(bottom[j]==top[i])
count++;
}
if(bottom[i]!=count){
bottom[i] = count;
changed = true;
}
}
for(i=0;i<10;i++)
printf("%d\t",bottom[i]);
printf("\n");
}
system("pause");
}