题目: 在一组数中, 有一个数只出现了1次, 其他数都出现了(K>1)次,找出出现一次的数.
package DataStructure;
public class 求出现1次的某个数 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int []array= {1,1,1,52,3,3,3,7,7,7,8,8,8};
char kRadix[][]=new char [array.length][];//存疑
int k=3;
int maxlen=0;
//转成K进制并翻转,方便后面计算
for(int i=0;i<array.length;i++) {
kRadix[i]=new StringBuilder(Integer.toString(array[i],k)).reverse().toString().toCharArray();
if(kRadix[i].length>maxlen) {
maxlen=kRadix[i].length;
}
}
//开始进行无进位计算
int []res=new int[maxlen];
for(int i=0;i<array.length;i++) {
for(int j=0;j<maxlen;j++) {
if(kRadix[i].length<=j) {
res[j]+=0;
}
else
{
res[j] +=(kRadix[i][j]-'0');
}
}
}
//输出结果
int result=0;
for(int i=0;i<maxlen;i++) {
result =result+(res[i]%k)*(int)Math.pow(k,i);
}
System.out.print(result);
}
}