万恶的0陷阱和那数据范围
#include<iostream>
char ch[50001];
int temp[50001];
int main()
{
int i,len,num1,num2,num;
while(scanf("%s",&ch)&&ch[0]!='0')
{
len = strlen(ch);
sizeof(temp,0,sizeof(temp));
temp[0] = 1;
temp[1] = 1;
for(i=2;i<=len;i++)
{
num1 = (ch[i-2]-'0')*10;
num2 = (ch[i-1]-'0');
num = num1 + num2;
if(num2==0)
temp[i] = temp[i-2];
else if(num<=26&&num>=10)
temp[i] = temp[i-1] + temp[i-2];
else
temp[i] = temp[i-1];
}
printf("%d/n",temp[len]);
}
return 0;
}