算是一道比较水的DP吧,不需要空间储存,直接动态刷新最新结果,注意处理0字符的情况就行
#include<stdio.h>
int main()
{
int c;
while ((c = getchar()) != '0')
{
int num, prev = 1, ppv = 1, res = 1, pc = c;
while ((c = getchar()) != '\n')
{
if (c == '0')
res = ppv;
else if (pc == '0')
res = prev;
else
{
num = (pc - '0') * 10 + c - '0';
if (num > 26)
res = prev;
else
res = prev + ppv;
}
ppv = prev;
prev = res;
pc = c;
}
printf("%d\n", res);
}
getchar();
return 0;
}