【问题标题】:Simple Word Arithmetic?简单的单词算术?
【发布时间】: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


【解决方案1】:

在循环中,您每次只需要创建一个角色,即使用 mod 运算符计算的角色。

另一个计算应该将除法存储为进位。

总数必须包括字母和先前计算的进位。

完成后,您不必删除 finalA 的最后一个字符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2015-03-15
    • 2011-07-22
    • 2011-12-19
    相关资源
    最近更新 更多