java第一个字母和最后一个字母、第二个字母和倒数第二个字母之间的差值之和,依此类推,直到单词的中心
如果给定字符串为“万维网” 在每个单词中,找出第一个字母和最后一个字母、第二个字母和倒数第二个字母之间的差值之和,依此类推,直到单词的中心
世界=[W-D]+[O-L]+[R]=[23-4]+[15-12]+[18]=[19]+[3]+[18]=[40]
宽=[W-E]+[I-D]=[23-5]+[9-4]=[18]+[5]=[23]
网络=[W-B]+[E]=[23-2]+[5]=[21]+[5]=[26]
将每个单词的和连接起来形成结果
[40][23][26]
[402326]
class Strcode{
public static void main(String args[]){
int xd[]=new int[100];
int n[]=new int[100];
int position=0;
String input = "hello".toLowerCase(); //note the to lower case in order to treat a and A the same way
for( int i = 0; i < input.length(); ++i) {
position = input.charAt(i) - 'a' + 1;
System.out.println(position);
for( int k=0,j=position.length()-1;k<j;k++,j--){
xd[k]=Math.abs(xd[k]-xd[j]);
System.out.println(xd[k]);
}
}
}
}
通过上面的代码,我可以得到字母的数值,但无法进行下一步的减法
# 1 楼答案
这是初学者的基本问题之一。让我来帮你解决。您需要执行以下步骤:
将这些总和串联起来。(轻松!)
下面是您需要的完整代码,但首先请自己尝试
# 2 楼答案
如果不实现所描述的逻辑,而是对其进行分析并得到一个更简单的解决方案,则可以使它变得更简单
您可以将单词的前半部分(如果单词长度为奇数,则包括中间的字母)相加,然后减去后半部分,而不是将第一个字母和最后一个字母之间的差值相加,依此类推
您将获得: