第1个回答 2019-11-13
#include
//首先,请原谅我,你写的没有注释太难看懂你每一步想要表达什么了,还不如重新写一个比较快,见谅!感觉这类问题画下图找下规律会快很多,我画了有3个人3本书的方法找到的规律
#define
allbook
5
void
main()
{
int
pa=0,pb=0,pc=0,waycount=0;
for(;;pc++)
{
if(pc>allbook-pa-pb)
{
pb++;pc=0;
//pa,pb,pc不能大于5,所以pc不能大于pa+pb,故如果大于了,则进位
}
if(pb>allbook-pa-pc)
{
pa++;pb=0;pc=0;//由于pb是上一步增加所得,不考虑其他原因,同上。
}
if(pa>allbook)
break;
//最终结果一定是pc慢慢流向pa,pa达到5,则停止。
printf("a:%d,b:%d,c:%d\n",pa,pb,pc);
waycount++;
}
printf("its
%d
answer
in
this
question!",waycount);
}