|
发表于 2007-1-30 23:57:26
|
显示全部楼层
第一种
计算数组的前一位与当前为的差值,同时打印出当前位,就可以知道两个数组两个位间有多少个数相差了,由于每次都printf出来当前位,就可以解决最后一位到问题。如果觉得这样还不满意,可以对最后一位及第一位做如下处理,第一位和1相减,最后位和10相减,就可以知道了
例如数组a[]={1,3,4,6,9}
1.数组第一位 a[0]-1 结果只可能是>=0,如果为0,第一位则为1,因为是顺序排列的,所以如果差值位N,那么1-10就可以判断出少N个数了,并且知道当前位的值了
2.然后a[1]-a[0]=X,同上理也可以知道了
3.最后判断最后一位a[n-1]-10=X X只可能<=0,同样也可以知道结果
这个方法有点土就是了
第二种
如果只是1-10,那么在造一个数组,b[10](可以将数组初始化为全部都是0);
根据a[]的每一位的值位b[10]的来赋值
情况如下if(a=n) then b[n-1]=1,循环a[]数组的长度后,计算b[10]数组中值非1的位置,就可以了
例如:a[]={1,3,6,8,9},假设b[10]={0,0,0,0,0,0,0,0,0,0}
那么根据上面的方法最后b[]={1,0,1,0,0,1,0,1,1,0},最后打印出为零的位数(+1)就可以了
一时间只想到了两个,而且是很土到两个 |
|