在C++和VB里有逻辑类型,C++中为bool,VB中为 Boolean。其值有true和 false两种,true代表真,false代表假。
C语言没有逻辑类型,如果要表示逻辑类型,只能用整型值代替。0代表false,非0代表true。
集合是一种元素间无序的类型。C语言没有集合类型。
(注意:数组不算集合类型,因为数组元素之间有前驱和后继关系。)
动态规划.
#include <stdio.h>/*#include <stdlib.h>*/
#include <memory.h>
#define N 5050
int main(int argc, char* argv)
{
int d[N]
int n,s
while(scanf("%d",&n)!=EOF) {
s=n*(n+1)>>1
if(s&1) {
printf("0\n")
}
else {
s=s>>1
int i,j
memset(d,0,N*sizeof(d[0]))
d[0]=1
for(i=1i<=ni++) {
for(j=sj>=ij--) {
d[j] = d[j] + d[j-i]
}
}
printf("%d\n",d[s]>>1)
}
}
return 0
}
C语言中无布尔类型,逻辑值用0和非0表示,因此通常布尔类型用int类型代替。集合类型在C语言中就是枚举
enmu,至于PASCAL中可以用子界形式表示的集合类型,在C中则不存在,也没有内置的集合类型运算,如
PASCAL中
in运算