CCF 跳一跳
程序实现
- 当读取到内存的数值的时候判断是否为0
- 当读取到1的时候 flag+1
- 当读取到2的时候判断是否为连续的2(连续跳到中点)
题目:
代码:
#include <stdio.h>
int main()
{
int n,flag=0,final=0;
scanf("%d",&n);
while(n!=0)
{
if (n==1) flag=1;//当输入的n为1时等价于flag为1;
else if (n==2&&flag==1) flag=2;
/*当n为2时,判断这个2前面是否是1,如果是1,就让flag=2 */
else if (n==2 && flag%2==0) flag=flag+2;
/*判断2是否连续 例如2 2 1 2 2 的情况 第一个2进来满足第三个if 则第二个2进来的时候
第二个if成立 判断为连续 */
final=final+flag;
scanf("%d",&n);
}
printf("%d",final);
return 0;
}