#include<stdio.h>
#include<math.h>
main()
{
int arr[]={2,2,2,5,7,7,7,3,3,3,6,6,6,0,0,0};
int i,j,a[16][4];
//将数组arr中的每一个元素转成4bit三进制,用数组存储
for(i=0;i<16;i++)
{
for(j=3;j>=0;j--)
{
a[i][j]=arr[i]%3;
arr[i]/=3;
}
}
//将16个三进制数做不进位相加,存储在数组s[4]中
int s[4]={0};
for(i=0;i<16;i++)
{
for(j=0;j<4;j++)
{
s[j]+=a[i][j];
if(s[j]>=3)
s[j]-=3;
}
}
//将数组s[4]中存储的三进制数转成十进制数输出
int k=0,n=0;
for(i=3;i>=0;i--)
{
n+=s[i]*pow(3,k);
k++;
}
printf("出现一次的数是:%d",n);
}