this is a c++ implements of mine.coz i now studing c++,but it is easy converting to java.
#include<iostream>
using namespace std;int judge(int a,int b)
{
    if(a*b==24||a+b==24||a-b==24||b-a==24){cout<<endl<<a<<endl<<b<<endl;return 1;}
    if(a&&b/a==24&&b%a==0){cout<<endl<<a<<endl<<b<<endl;return 1;}
    if(b&&a/b==24&&a%b==0){cout<<endl<<a<<endl<<b<<endl;return 1;}
    return 0;
}
int judge(int a,int b,int c)
{
    if(judge(a,b*c)||judge(a,b+c)||judge(a,b-c)||judge(a,c-b))
    {
        cout<<a<<endl<<b<<endl<<c<<endl;
        return 1;
    }
    if(c&&b%c==0&&judge(a,b/c)){cout<<a<<endl<<b<<endl<<c<<endl;return 1;}
    if(b&&c%b==0&&judge(a,c/b)){cout<<a<<endl<<b<<endl<<c<<endl;return 1;}
    if(judge(b,a*c)||judge(b,a+c)||judge(b,a-c)||judge(b,c-a))
    {
        cout<<a<<endl<<b<<endl<<c<<endl;
        return 1;
    }
    if(a&&c%a==0&&judge(b,c/a)){cout<<a<<endl<<b<<endl<<c<<endl;return 1;}
    if(c&&a%c==0&&judge(b,a/c)){cout<<a<<endl<<b<<endl<<c<<endl;return 1;}
    if(judge(c,b*a)||judge(c,a+b)||judge(c,a-b)||judge(c,b-a))
    {
        cout<<a<<endl<<b<<endl<<c<<endl;
        return 1;
    }
    if(a&&b%a==0&&judge(c,b/a)){cout<<a<<endl<<b<<endl<<c<<endl;return 1;}
    if(b&&a%b==0&&judge(c,a/b)){cout<<a<<endl<<b<<endl<<c<<endl;return 1;}
    return 0;
}int judge(int a,int b,int c,int d)
{
    if(judge(a,b,c*d)||judge(a,b,c+d)||judge(a,b,c-d)||judge(a,b,d-c))
    {
        cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;
        return 1;
    }
    if(c&&d%c==0&&judge(a,b,d/c)){cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;return 1;}
    if(d&&c%d==0&&judge(a,b,c/d)){cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;return 1;}
    if(judge(a,c,b*d)||judge(a,c,b+d)||judge(a,c,d-b)||judge(a,c,b-d))
    {
        cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;
        return 1;
    }
    if(b&&d%b==0&&judge(a,c,d/b)){cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;return 1;}
    if(d&&b%d==0&&judge(a,c,b/d)){cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;return 1;}
    if(judge(a,d,b*c)||judge(a,d,b+c)||judge(a,d,b-c)||judge(a,d,c-b))
    {
        cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;
        return 1;
    }
    if(b&&c%b==0&&judge(a,d,c/b)){cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;return 1;}
    if(c&&b%c==0&&judge(a,d,b/c)){cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;return 1;}
    if(judge(b,c,a*d)||judge(b,c,a+d)||judge(b,c,a-d)||judge(b,c,d-a))
    {
        cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;
        return 1;
    }
    if(a&&d%a==0&&judge(b,c,d/a)){cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;return 1;}
    if(d&&a%d==0&&judge(b,c,a/d)){cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;return 1;}
    if(judge(b,d,a*c)||judge(b,d,a+c)||judge(b,d,a-c)||judge(b,d,c-a))
    {
        cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;
        return 1;
    }
    if(a&&c%a==0&&judge(b,d,c/a)){cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;return 1;}
    if(c&&a%c==0&&judge(b,d,a/c)){cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;return 1;}
    if(judge(c,d,a*b)||judge(c,d,a+b)||judge(c,d,a-b)||judge(c,d,b-a))
    {
        cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;
        return 1;
    }
    if(a&&b%a==0&&judge(c,d,b/a)){cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;return 1;}
    if(b&&a%b==0&&judge(c,d,a/b)){cout<<a<<endl<<b<<endl<<c<<endl<<d<<endl;return 1;}
    return 0;
}
            
int main()
{
    int a,b,c,d;
    cout<<"please input 4 number:i will judge if they are hello number."<<endl;
    cin>>a>>b>>c>>d;
    if(judge(a,b,c,d))cout<<"hello";
    else cout<<"pity! they are not";
}

解决方案 »

  1.   

    //it is my java implements.
    //我知道这是很差劲的实现,我期待更好的实现,最好有代码。
    class Hello
    {
    static boolean  judge(int a,int b)
    {
        if(a*b==24||a+b==24||a-b==24||b-a==24){return true;}
         if(a!=0&&b/a==24&&b%a==0){return true;}
         if(b!=0&&a/b==24&&a%b==0){return true;}
         return false;
    }
    static boolean judge(int a,int b,int c)
    {
         if(judge(a,b*c)||judge(a,b+c)||judge(a,b-c)||judge(a,c-b))
         {
             return true;
         }
         if(c!=0&&b%c==0&&judge(a,b/c)){return true;}
         if(b!=0&&c%b==0&&judge(a,c/b)){return true;}
         if(judge(b,a*c)||judge(b,a+c)||judge(b,a-c)||judge(b,c-a))
         {
             return true;
         }
         if(a!=0&&c%a==0&&judge(b,c/a)){return true;}
         if(c!=0&&a%c==0&&judge(b,a/c)){return true;}
         if(judge(c,b*a)||judge(c,a+b)||judge(c,a-b)||judge(c,b-a))
         {
             return true;
         }
         if(a!=0&&b%a==0&&judge(c,b/a)){return true;}
         if(b!=0&&a%b==0&&judge(c,a/b)){return true;}
         return false;
    }static boolean  judge(int a,int b,int c,int d)
    {
        if(judge(a,b,c*d)||judge(a,b,c+d)||judge(a,b,c-d)||judge(a,b,d-c))
        {
            return true;
        }
        if(c!=0&&d%c==0&&judge(a,b,d/c)){return true;}
        if(d!=0&&c%d==0&&judge(a,b,c/d)){return true;}
        if(judge(a,c,b*d)||judge(a,c,b+d)||judge(a,c,d-b)||judge(a,c,b-d))
        {
            return true;
        }
        if(b!=0&&d%b==0&&judge(a,c,d/b)){return true;}
        if(d!=0&&b%d==0&&judge(a,c,b/d)){return true;}
        if(judge(a,d,b*c)||judge(a,d,b+c)||judge(a,d,b-c)||judge(a,d,c-b))
        {
            return true;
        }
        if(b!=0&&c%b==0&&judge(a,d,c/b)){return true;}
        if(c!=0&&b%c==0&&judge(a,d,b/c)){return true;}
        if(judge(b,c,a*d)||judge(b,c,a+d)||judge(b,c,a-d)||judge(b,c,d-a))
        {
            return true;
        }
        if(a!=0&&d%a==0&&judge(b,c,d/a)){return true;}
        if(d!=0&&a%d==0&&judge(b,c,a/d)){return true;}
        if(judge(b,d,a*c)||judge(b,d,a+c)||judge(b,d,a-c)||judge(b,d,c-a))
        {
            return true;
        }
        if(a!=0&&c%a==0&&judge(b,d,c/a)){return true;}
        if(c!=0&&a%c==0&&judge(b,d,a/c)){return true;}
        if(judge(c,d,a*b)||judge(c,d,a+b)||judge(c,d,a-b)||judge(c,d,b-a))
        {
            return true;
        }
        if(a!=0&&b%a==0&&judge(c,d,b/a)){return true;}
        if(b!=0&&a%b==0&&judge(c,d,a/b)){return true;}
        return false;
    }
                
    public static void  main(String args[])throws Exception
    {
    if(args.length!=4){System.out.println("usage:Hello 3 4 5 6");return;}
    int a,b,c,d;
    try{
    a=Integer.parseInt (args[0]);
    b=Integer.parseInt (args[1]);
    c=Integer.parseInt (args[2]);
    d=Integer.parseInt (args[3]);
    }catch(Exception e){System.out.println("invalid data type");return;}
    if(judge(a,b,c,d))System.out.println("Hello");
    else System.out.println("Pity,they are not");
    }
    }