有一个应用程序的签到送积分的规则如下:
首先,每天登录将至少得到 1 分;
其次,若用户在前一天也登录了,当天得分为前一天得分加一分;
最后,每天得分的上限为 5 分。
给定一个字符序列 ss,ss 表示一个用户每天签到的情况,若某天签到,记为 Y,若某天没有签到,记为 N。请计算该用户能够获得的积分总数。
输入格式
一个字符序列:保证仅由大写字母 Y 和 N 组成。
输出格式
单个正整数,表示用户获得的积分之和。
#include
using namespace std;
int main(){
int x=0;
int i,n,s[n];
bool Y=true;
bool N=false;
for (int i=0;i<10000;i++){
cin>>s[n];
}
while(true){
x=2*x+1;
if(x=5){
x=x+5;
}
}
while(false){
x=x;
}
cout<<x;
return 0;
}
输入若干YN,光标闪动,无法停止输入,按回车键没有输出
修正代码
#include <iostream>
int main()
{
std::string s;
std::cin >> s;
int total = 0;
int n = 0;
for (std::size_t i = 0; i < s.size(); i++)
{
if (s[i] == 'Y')
{
if (n < 5)
n++;
total += n;
}
else
{
n = 0;
}
}
std::cout << total;
return 0;
}