黑马程序员技术交流社区

标题: 网上找的Java例题及答案,大家一起学习一下 [打印本页]

作者: WaterTheGreat    时间: 2015-12-21 19:45
标题: 网上找的Java例题及答案,大家一起学习一下
一.        实验目的
掌握基本的输出格式
学会使用集中循环结构
对于类,对象有更深刻的了解,学会定义类,包括其中的变量,构造方法,类方法,等等
二.        实验内容
        实验题目一:
        找出1~5000范围内分别满足如下条件的数:
           (1) 7或11或13的倍数
           (2) 7、11,或7、13或11、13的倍数
           (3) 7、11和13倍数

1.        程序源代码
        public class title1{
                public static void main(String[] args){
                int z;
                int i=0;
                int j=0;
                int k=0;
                int aa,bb,cc;
                int length=2000;
                int a[]=new int[length],b[]=new int[length],c[]=new int[length];
                for(z=1;z<=5000;z++)
                        {
                                aa=z%7;
                                bb=z%11;
                                cc=z%13;
                                if(aa==0||bb==0||cc==0)
                                        {
                                                a[i]=z;
                                                i++;
                                        }
                                if((aa==0&&bb==0)||(aa==0&&cc==0)||(bb==0&&cc==0))
                                        {
                                                b[j]=z;
                                                j++;
                                        }
                                if(aa==0&&bb==0&&cc==0)
                                        {
                                                c[k]=z;
                                                k++;
                                        }
                        }
                System.out.printf("1~5000中是7或11或13的倍数的数有(共%d个):",i);
                System.out.println();
                for (z=0;z<i;z++)        System.out.printf("%d ",a[z]);
                System.out.println();
                System.out.printf("1~5000中是7、11,或7、13或11、13的倍数的数有(共%d个):",j);
                System.out.println();
                for (z=0;z<j;z++)        System.out.printf("%d ",b[z]);
                System.out.println();
                System.out.printf("1~5000中是7、11和13倍数的数有(共%d个):",k);
                System.out.println();
                for (z=0;z<k;z++)        System.out.printf("%d ",c[z]);
                }
        }
2.        实验结果

       
实验题目二:
计算: y=3*1!/1+3^2*2!/2^2+3^3*3!/3^3+...+3^n*n!/n^n。
1.        程序源代码
        import java.util.*;
        public class title2{
    public static double method(double n)
    {
        double i=1,p=1,result=0;
        do
                {
            p=p*i;
                        result=result+Math.pow(3,i)*p/Math.pow(i,i);
                        i++;
                }
        while( i<=n );
        return result;
    }
    public static void main(String[] args)   
    {
        Scanner sc =new Scanner(System.in);
                System.out.println(" Result=3*1!/1+3^2*2!/2^2+3^3*3!/3^3+...+3^n*n!/n^n:请输        入n:");
                double k=sc.nextLong();
        double Result=method(k);
                System.out.printf("Result=3*1!/1+3^2*2!/2^2+...+3^%1.0f*%1.0f!/%1.0f^%1.0f=%10.4f        ",k,k,k,k,Result);
    }
}
         2.实验结果
         
        实验题目三:
        输出以下字符图形,比如,当n=6时,结果如下:
                   1
              2  2  2
           3  3  3  3  3
          4  4  4  4  4  4
             5  5  5  5
                6  6
1.        程序源代码
        import java.util.*;
        public class title3
        {
    public static void main(String args[])
    {
                Scanner sc =new Scanner(System.in);
                System.out.printf("显示n行字符图形,请输入n:");
                double n=sc.nextDouble();
                int t=(int)Math.floor(n/2);
        for(int i=1;i<=n;i++)
        {   
            for(int j=1;j<=Math.abs(t+1-i);j++)
            {
               System.out.printf("  ");
            }
                        int k=(t+1)<i?(2*t+2-i):i;
                        for(int j=1;j<=k;j++)
            {
               System.out.printf("%d   ",i);
            }
            System.out.println();
        }        
    }
}
         2.试验结果

        实验题目四:
1.        程序源代码
        package Rational;
        public class Fraction{
        private int sign;
        private int numerator,denominator;
        public Fraction(Fraction r){
                sign=r.sign;
                numerator=r.numerator;
                denominator=r.denominator;
        }
        public Fraction(int n,int d){
                sign=n*d>0?1:-1;
                n=Math.abs(n);
                d=Math.abs(d);
                int t=gcd(n,d);
                numerator=n/t;
                denominator=d/t;
        }
        static int gcd(int m,int n){
                int r=m%n;
                while(r!=0){
                        m=n;
                        n=r;
                        r=m%n;
                }
                return n;
        }
        public Fraction add(Fraction r){
                int d=denominator*r.denominator;
                int n=sign*numerator*r.denominator+r.sign*r.numerator*denominator;
                return new Fraction(n,d);
        }
        public Fraction minus(Fraction r){
                int d=denominator*r.denominator;
                int n=sign*numerator*r.denominator-r.sign*r.numerator*denominator;
                return new Fraction(n,d);
        }
        public Fraction multiply(Fraction r){
                int d=denominator*r.denominator;
                int n=numerator*r.numerator;
                int s=sign*r.sign;
                return new Fraction(s*n,d);
        }
        public Fraction divide(Fraction r){
                int d=denominator*r.numerator;
                int n=numerator*r.denominator;
                int s=sign*r.sign;
                return new Fraction(s*n,d);
        }
        public void print(){
                String str;
                if(numerator==0)
                        System.out.println(numerator);
                else if(numerator%denominator==0)
                        System.out.println(numerator/denominator);
                else
                {
                        str=sign*numerator+"/"+denominator;
                        System.out.println(str);
                }
        }
}


package Rational;
import java.util.*;
public class TestFraction{
        public static void main(String arg[]){
                Scanner sc =new Scanner(System.in);
                System.out.print("请输入第一个分数fra1的分子:");
                int n1=sc.nextInt();
                System.out.println();
                System.out.print("请输入第一个分数fra1的分母:");
                int d1=sc.nextInt();
                System.out.println();
                System.out.print("请输入第二个分数fra2的分子:");
                int n2=sc.nextInt();
                System.out.println();
                System.out.print("请输入第二个分数fra2的分母:");
                int d2=sc.nextInt();
                System.out.println();
                Fraction fra1=new Fraction(n1,d1);
                Fraction fra2=new Fraction(n2,d2);
                Fraction fra3=fra1.add(fra2);
                Fraction fra4=fra1.minus(fra2);
                Fraction fra5=fra1.multiply(fra2);
                Fraction fra6=fra1.divide(fra2);
                System.out.print("第一个分数fra1=");fra1.print();
                System.out.print("第二个分数fra2=");fra2.print();
                System.out.print("两个分数的和fra1+fra2=");fra3.print();
                System.out.print("两个分数的差fra1-fra2=");fra4.print();
                System.out.print("两个分数的积fra1*fra2=");fra5.print();
                System.out.print("两个分数的商fra1/fra2=");fra6.print();
        }
}
         2.试验结果






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2