单项选择题

若有如下程序:
int sub(int m)
if(m==1||m==0) return 2;
else return(sub(m-1)*sub(m-2));
main()
int n;
scanf("%d",&n);
printf("%d",sub(n));

如果从键盘输入4<回车>,则程序运行后的输出结果是( )。

A.8
B.16
C.24
D.32