1

赫罗,嗯,我不确定你是否是这样使用这个网站的,但是让我们开始吧......所以我需要这个项目的帮助,我必须这样做 -

输入输出

A - F -> 乘以 3,除以 4

G - J -> 除以 3 + 25

K - N -> 找到最大因子 * 2

O - Q -> 找到最大的素数 * 3

R - W -> 找到除 1 之外的最小因子

X - Z -> 数字总和

所以我想知道我的第一对夫妇是否正确,并且在空白处需要帮助。因此,字母代表“Z”中的数字是最后一个字母,所以它是 26,而“A”是第一个,所以它是 1。所以如果一个响应......谢谢!包乐趣;

import java.util.Scanner;

public class Fun {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        run();
    }

    public static void run()
    {
        input();
        evaluateAlphabet();
        evaluate();

    }
    public static void input()
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter a Letter, please");
        x = sc.next();
    }
    public static String x = " ";
    public static int temp = 0;
    public static int answer = 0;

    public static void evaluateAlphabet()
    {   
        if(x.equals("A"))
        {
            temp = 1;
        }
        else if (x.equals("B"))
        {
            temp = 2;
        }
        else if (x.equals("C"))
        {
            temp = 3;
        }
        else if (x.equals("D"))
        {
            temp = 4;
        }
        else if (x.equals("E"))
        {
            temp = 5;
        }
        else if (x.equals("F"))
        {
            temp = 6;
        }
        else if (x.equals("G"))
        {
            temp = 7;
        }
        else if (x.equals("H"))
        {
            temp = 8;
        }
        else if (x.equals("I"))
        {
            temp = 9;
        }
        else if (x.equals("J"))
        {
            temp = 10;
        }
        else if (x.equals("K"))
        {
            temp = 11;
        }
        else if (x.equals("L"))
        {
            temp = 12;
        }
        else if (x.equals("M"))
        {
            temp = 13;
        }
        else if (x.equals("N"))
        {
            temp = 14;
        }
        else if (x.equals("O"))
        {
            temp = 15;
        }
        else if (x.equals("P"))
        {
            temp = 16;
        }
        else if (x.equals("Q"))
        {
            temp = 17;
        }
        else if (x.equals("R"))
        {
            temp = 18;
        }
        else if (x.equals("S"))
        {
            temp = 19;
        }
        else if (x.equals("T"))
        {
            temp = 20;
        }
        else if (x.equals("U"))
        {
            temp = 21;
        }
        else if (x.equals("V"))
        {
            temp = 22;
        }
        else if (x.equals("W"))
        {
            temp = 23;
        }
        else if (x.equals("X"))
        {
            temp = 24;
        }
        else if (x.equals("Y"))
        {
            temp = 25;
        }
        else if (x.equals("Z"))
        {
            temp = 26;
        }
        else if (x.equals("Qwerty"))
        {
            temp = 27;
        }
    }
    public static void evaluate()
    {
        if(temp>=1 && temp<= 6)
        {
            answer =  (temp * 3)/4;
            System.out.println("Answer is " + answer);
        }
        else if(temp >= 7 && temp<= 10)
        {
            answer = (temp/3) + 25;
            System.out.println("Answer is " + answer);
        }
        else if(temp >= 11 && temp<= 14)
        {

        }

        else if(temp>=15 && temp<= 17)
        {
            for(int i = temp; i>0; i--)
            {
                for(int j = 2; j <=i/2 + 1; j++)
                {
                    if(i%j==0)
                    {
                        break;
                    }
                    if(j==i/2 + 1)
                    {
                    answer = i * 3;
                    }           
                }
            }
            System.out.println("Answer is " + answer);
        }
        else if(temp>=18 && temp<= 23)
        {
            answer = temp;
        }
        else if(temp>= 24 && temp<=26)

            answer = (answer * 12)%26;
            System.out.println("Answer is " + answer);
            }
    }

-腐败

4

1 回答 1

0

这是 char 到 int 转换的更好方法:假设字符串至少有 1 个字符(检查其长度),您可以通过以下方式获取临时值:

temp = x.getCharAt(0) - 'A' + 1;

或者,安全第一:

temp = 0;
if (x.matches("^[A-Z]{1}$") {
  temp = x.getCharAt(0) - 'A' + 1;
}

这里发生了什么事?每个字符都有一个 ASCII 码,一个整数。因此,当您有 2 个字符并尝试获取它们之间的距离时,结果是一个 int。'A' - 'A' = 0(这就是为什么我添加了一个+ 1),'B' - 'A' = 1等等。对于 if 条件,我使用的是RegExp. ^表示输入的开始,[A-Z]{1}表示AZ之一,$表示输入的结束。因此,如果它是 AZ,则 temp 将获得一个值,其他任何东西都不会出现在 if 中,并且您temp将保持 0,因此您可以轻松测试是否有 AZ。

代码审查就这些了,我不会给你解决方案,你必须努力工作,使用谷歌。如果我为您准备好复制粘贴的所有内容,您将不会享受和学习。

于 2013-10-19T06:18:30.227 回答