zoj 1539 Lot

时间:2023-03-09 05:15:10
zoj 1539 Lot
/*理解题意后,发现最后剩下的都是个数并不是和奇数偶数等有直接的关系,所以我们直接从数量入手
比如11会被分为5,6.5再分2,3.6再分3,3只要剩下三个就算一种,少于三个不用算。大于3个继续分
很简单,这里循环处理还涉及到分支循环,类似于二叉树。这种情况明显用递归
*/
#include<string.h>
#include<stdio.h>
int zb(int);
int main(int argc, char* argv[])
{ int n,i,count;
while(scanf("%d",&n)!=EOF)
{
count=zb(n);
printf("%d\n",count);
} return ;
}
int zb(int n)
{
if(n==)/*终止条件*/
return ;
else if(n<)
return ;
else
{
if(n%==)/*分支递归*/
{
return zb(n/)+zb((n+)/);
}
else
{
return zb(n/)*;
}
}
}