信的内容由a-z的26个小写字母构成,而每个字母的宽度均会事先约定。例如字符宽度约定为[1,2,3,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],那么就代表'a'到'd'四个字母的宽度分别是1,2,3,4,而'e'到'z'的宽度均为5
那么按照上述规则将给定内容S书写成一封信后,这封信共有几行?最后一行宽度是多少?
#include "iostream"
#include "vector"
#include "algorithm"
using namespace std;
int main()
{
vector<int> vec(26,0);
int i = 0;
while(i < vec.size())
{
cin >> vec[i];
if(vec[i] > 10 || vec[i] < 1)
i--;
i++;
}
int count = 1;//记录行数
int num = 0;//记录最后一行个数
string str;
cin >> str;
while(str.size() > 1000 || str.size() < 1)
cin >> str;
for(i = 0; i < str.size(); i++)
{
int index = str[i] - 'a';
if(num + vec[index]> 100)
{
count++;
num = vec[index];
}
else
num += vec[index];
}
cout << count << " " << num << endl;
return 0;
}
本文介绍了一个计算信件所需行数及最后一行宽度的程序。通过输入各字母的宽度及信件内容,程序能够准确计算出行数及最后一行的宽度,确保信件布局美观合理。
1302

被折叠的 条评论
为什么被折叠?



