这是原题目:
有3堆火柴共48根,现在做如下操作:从第1堆火柴中拿出和第2堆相同的火柴并入第2堆,再从第2堆中拿出与第3堆相同的火柴数并入第3堆,最后从第3堆拿出与现在第1堆相同的火柴数并入第1堆。经过这样的操作后,现在这样的3堆都是16根,问开始操作之前的3堆火柴分别是几根?
这是我在网上找的答案:
#include<stdio.h>
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;
}
我想知道循环内容为什么这么写呀?
这个求余数思想是怎么想出来的?
本回答被提问者采纳