题目描述
算法设计+题目分析
分析题目:
1、读入所有的数,保存入数组;
2、遇到0时,退出打印结果;
3、遇到1时,结果+1;
4、遇到2时,计算这个2前面有多少个连续的2,加过加上新的分数;
5、循环2、3、4。
注意点+记录点
无
代码(100分)
环境
Visual C++6.0
#include <iostream>
using namespace std;
int record[30];
int main()
{
memset(record, -1, sizeof(record));
//cout<<record[10];
for (int i=0; ; i++)
{
cin>>record[i];
if (!record[i]) break;
}
int score=0;
for (int j=0;;j++)
{
if (!record[j]) break;
if (record[j]==1) score +=1;//跳到边缘,+1分
if (record[j]==2)//跳到中心
{
if (j-1<0) score +=2;//第一次跳到
else
{
int temp=0;
for (int ii=j;record[ii]!=1 && ii>=0;ii--)//往后倒退,计算有几个连续的2
{
temp +=2;
}
score +=temp;
}
}
}
cout<<score;
return 0;
}
感谢链接
无