半数集VS半数单集

来源:互联网 发布:js多少级技能 编辑:程序博客网 时间:2024/05/16 11:29
#include <stdio.h>#include <string.h> int a[1000];int fun1(int n)//半数单集 {if(a[n])return a[n];a[n]=1;for(int i = 1;i<=n/2;i++){a[n]+=fun1(i);if(i>=10 && 2*(i/10)<=i%10)//半数集和半数单集区别的最主要的地方 {a[n]-=a[i/10]; } }return a[n];}int fun2(int n)//半数集 {if(!n)return 1;int count = 0;for(int i = 0;i<=n/2;i++)count+=fun2(i);return count;}int main(){int n;while(~scanf("%d",&n)){memset(a,0,sizeof(a));fun1(n); printf("半数单集%d  半数集%d\n",a[n],fun2(n));} return 0;} 

0 0
原创粉丝点击