View Code of Problem 18

#include<stdio.h>
int pa(int n)
{
	if(n==2)	return 1;

	else if(n==3)	return 3;

	else 
	{
		if(n%2==0) return pa(n/2)+pa(n/2);
		else return pa(n/2)+pa(n/2+1);
	}
}
int main()
{
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		if(n==3) printf("1\n");
		else
		{
			int m=pa(n);
			printf("%d\n",m);	
		}
	}
}

Double click to view unformatted code.


Back to problem 18