如何找到最大素数,除1,数和之外的最小因子

时间:2013-10-19 06:00:04

标签: java eclipse algorithm

Herro,嗯我不确定你是否使用这个网站,但是呃我们可以去看看......所以我需要这个项目的帮助,我必须这样做 -

输入[] []输出

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);
            }
    }

-Corruption

1 个答案:

答案 0 :(得分: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}表示A-Z之一,$表示输入结束。所以,如果它是一个AZ,temp会得到一个值,其他任何东西都不会在if中出现,temp将保持为0,这样你就可以轻松测试你是否有AZ。

这就是代码审查,我不会给你解决方案,你必须更加努力,使用谷歌。如果我准备好复制粘贴,你就不会喜欢和学习。