【发布时间】:2016-01-02 05:32:14
【问题描述】:
package pls;
import java.util.Scanner;
public class pls {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner keyboard = new Scanner(System.in);
int count = 0;
int amount;
int amount2;
int[] Array = new int[100];
int[] Array1 = new int[100];
int total;
char b;
String bad = "";
String finalA = "";
System.out.println("Input your first word/letter (must be upper case): ");
String first = keyboard.next();
amount = first.length();
System.out.println("Input your second word/letter (must be upper case): ");
String second = keyboard.next();
amount2 = second.length();
while (amount < amount2)//to add on 'A' to first word
{
first = 'A' + first;
amount++;
}
while (amount2 < amount)//to add on 'A' to second word
{
second = 'A' + second;
amount2++;
}
for (int i = 0; i < amount; i++) {
Array[i] = (int)first.charAt(i) - 65;
}
for (int i = 0; i < amount2; i++) {
Array1[i] = (int)second.charAt(i) - 65;
}
for (int i = amount; i >= 0; i--) {
total = Array[amount] + Array1[amount2];
if (total > 25) {
int pls = total % 26;
b = (char)(pls + 65);
finalA = b + finalA;
total = total / 26;
b = (char)(total + 65);
finalA = b + finalA;
total = pls + total;
b = (char)(total + 65);
finalA = b + finalA;
}
else {
b = (char)(total + 65);
finalA = b + finalA;
}
amount--;
amount2--;
}
finalA = finalA.substring(0, finalA.length()-1);
while (finalA.charAt(0) == 'A') {
finalA = finalA.substring(0, 0) + finalA.substring(0 + 1);
}
System.out.println(finalA);
}
}
我需要制作一个程序,让用户可以从右到左添加单词。它们被赋予数值,通过它,您可以添加它们。以下是一些示例:CAT & DOG 构成 FOZ,MOM 和 DAD 构成 POP,ABA 和 A 构成 BA,BCD 和 BC 构成 BDF。
到目前为止,我已经设法让它工作了,但是下一个把我搞砸了...... ZZZ + ZZZ = BZZY.. 这就是程序的这一部分的解释方式:“例如, Z + Z = BY(因为 Z + Z = 50,50 模 26 是 24,也就是 Y,进位是 50 除以 26 得到的商,即 1,代表 B)。我很感激任何帮助!在此先感谢!(代码在顶部,因为错误。)
【问题讨论】:
-
当你有进位时,你必须为循环的下一次迭代保存进位,并将其添加到总数中。试着用铅笔和纸手工加 999 + 888,就像他们在你 6 或 7 岁时教你的那样。我想你会明白我的意思——在十位,你必须加 1 + 9 + 8。(我希望他们教你如何做算术......我并不总是知道他们现在在学校教什么。)
标签: java math logic word addition