题目描述如下:
现在你需要用一台奇怪的打字机书写一封书信。信的每行只能容纳宽度为100的字符,也就是说如果写下某个字符会导致行宽超过100,那么就要另起一行书写
信的内容由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书写成一封信后,这封信共有几行?最后一行宽度是多少?
代码如下:
package dyj;
import java.util.Scanner;
public class dyj {
public static void main(String[] args) {
Scanner sca1=new Scanner(System.in);
String str=sca1.nextLine();
int[] c=new int[26];
for (int i = 0; i < c.length; i++) {
Scanner sca2=new Scanner(System.in);
c[i]=sca2.nextInt();
}
int sum=0;
int cout=1;
char[] s=str.toCharArray();
for (int i = 0; i < s.length; i++) {
for (int j = 0; j < 26; j++) {
if (s[i]==j+97) {
sum+=c[j];
}
}
if (sum>=10) {
sum=0;
cout++;
}
}
System.out.println(cout);
System.out.println(sum);
}
}
测试结果:
hguhrgkjehjkerhgkjhrkghrejhgjkrhgjkherjgher
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
22
8