原来3堆火柴的根数分别是:22 14 12 根
#include
int main()
{ int i,j,a[3]= {16,16,16};
for(i=2; i>-1; i--)
{ a[(i+1)%3]/=2;
a[i]+=a[(i+1)%3];
}
for(j=0; j<3; j++)
printf("%d ",a[j]);
printf("\n");
return 0;
}
#include
void GetNums(const int n[3], int res[3]) {
if (NULL == n || NULL == res) {
return;
}
memmove(res, n, sizeof(int) * 3);
#define BACK_MOVE(src, dst) (src) += (dst >>= 1);
BACK_MOVE(res[2], res[0]);
BACK_MOVE(res[1], res[2]);
BACK_MOVE(res[0], res[1]);
#undef BACK_MOVE
}
int main(int argc, const char* const argv[]) {
int n[3] = { 16, 16, 16 };
GetNums(n, n);
for (int i = 0; i < 3; i++) {
printf("%d ", n[i]);
}
printf("\n");
return 0;
}