算法分享--50道基础算法

哈哈,偶然翻到大学业余时间做的50道基础算法题,简单的分享给入门的同学们,大牛不要喷。

----------------------第一题---------------------------
--题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 
public static void main(String[] args) 
    {
        System.out.println("请输入月份");
        Scanner input = new  Scanner(System.in);
        int num = input.nextInt();
        System.out.println("兔子的对数为"+getRabbitNum(num));
        }
        //根据兔子数规律找到递归方法,n代表月份
        public static int getRabbitNum(int n) 
        {
            if (n == 1 || n == 2)
            {
                return 1;
            }
        else 
        {
            return getRabbitNum(n - 1) + getRabbitNum(n - 2);
        }
    }
----------------------第二题---------------------------
--判断101-200之间有多少个素数,并输出所有素数。
public static void main(String[] args)
    {
        int num = 101;
        int temp = 0;
        for (int i = 101; i <= 200; i++)
        {
            for (int j = 2; j < num; j++)
            {
                if(num % j == 0)
                {
                    temp =1;
                    break;
                }               
            }
            if(temp == 1)
            {               
                temp=0;
            }
            else
            {
                System.out.println(num);
            }
            num++;
        }       
    }

----------------------第三题---------------------------
--题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花数 ",因为153=1的三次方+5的三次方+3的三次方
public static void main(String[] args)
    {
        for (int i = 100; i < 1000; i++)
        {
            int getNum1 = i/100;
            int getNum2 = i/10%10;
            int getNum3 = i%10;
            if(Math.pow(getNum1, 3)+Math.pow(getNum2, 3)+Math.pow(getNum3, 3)==i)
            {
                System.out.println(i);
            }
        }
    }

----------------------第四题---------------------------
--题目:题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5public static void main(String[] args)
    {
        System.out.println("请输入一个你要分解的数");
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        for (int i = 2; i <=n; i++)
        {
            if(i==n)
            {
                System.out.println(i);
            }
            if(n%i == 0)
            {
                n=n/i;              
                System.out.println(i);
                i =2; //重新赋值i,让程序重新开始循环
            }
        }
    }

----------------------第五题---------------------------
--题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。   。  
public static void main(String[] args)
    {
        System.out.println("请输入你的成绩");
        Scanner input = new Scanner(System.in);
        int getScore = input.nextInt();
        if(getScore>90)
        {
            System.out.println("A");
        }
        else if(getScore>60 && getScore<=89)
        {
            System.out.println("B");
        }
        else if(getScore < 60)
        {
            System.out.println("C");
        }
    }
----------------------第六题---------------------------
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
public static void main(String[] args)
    {
        System.out.println("请输入两个数:");
        Scanner input  = new Scanner(System.in);
        int getNum1 = input.nextInt();
        int getNum2 = input.nextInt();
        if(getNum1!=0 && getNum2 !=0)
        {
            do
            {
                if(getNum1>getNum2)
                {
                    int temp =0;
                    temp = getNum2;
                    getNum2 = getNum1/getNum2;
                    getNum1 = temp;                 
                }
                if(getNum1<getNum2)
                {
                    int temp =0;
                    temp = getNum1;
                    getNum1 = getNum2/getNum1;
                    getNum2 = temp;                 
                }
            }
            while(getNum2==0 || getNum1 ==0);
            System.out.println(getNum1);

        }
    }
----------------------第七题---------------------------
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 
public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String getStr = input.nextLine();

        int Blank = 0,Digit = 0,Letter = 0,Other = 0;
        for (int i = 0; i < getStr.length(); i++)
        {
            char c = getStr.charAt(i);
            if(c == ' ')
            {
                Blank++;
            }
            else if(Character.isDigit(c))
            {
                Digit++;
            }
            else if(Character.isLetter(c))
            {
                Letter++;
            }
            else
            {
                Other++;
            }
        }
        System.out.println("此字符串共有"+Blank+"个空格!");
        System.out.println("此字符串共有"+Digit+"个数字!");
        System.out.println("此字符串共有"+Letter+"个字母!");
        System.out.println("其他字符有"+Other+"个");

    }

----------------------第十题---------------------------
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在     第10次落地时,共经过多少米?第10次反弹多高? 
public static void main(String[] args)
    {
        double x=100;
        double s =0;
        for (int i = 0; i < 10; i++)
        {

                    s = s+x*2;
                    x=x/2;

        }
        System.out.println("答:共经过"+(s-100)+"米");
        System.out.println("答:反弹的高度为"+x+"米");
    }

----------------------第十一题---------------------------
题目:有1234四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?   
public static void main(String[] args)
    {
        int s[] ={1,2,3,4};
        int num1 = 0,num2 =0,num3 =0;
        for (int i = 0; i < s.length; i++)
        {
            num1 =s[i];
            for (int j = 0; j < s.length; j++)
            {
                num2 = s[j];
                if(num2==num1)
                {
                    continue;
                }
                for (int j2 = 0; j2 < s.length; j2++)
                {
                    num3 = s[j2];
                    if(num3==num1)
                    {
                        continue;
                    }
                    if(num3==num2)
                    {
                        continue;
                    }
                    System.out.print(num1);
                    System.out.print(num2);
                    System.out.print(num3);
                    System.out.println();
                }
            }
        }
    }

----------------------第十二题---------------------------
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润,求应发放奖金总数?   
public static void main(String[] args)
    {
         long i;
         double bonus,bon1,bon2,bon3,bon4,bon5;
         bon1 = 100000*0.1;
         bon2=bon1+100000*0.075;
         bon3=bon2+200000*0.05;
         bon4=bon3+200000*0.03;
         bon5=bon4+400000*0.015;
         System.out.println("请输入利润i:");
         Scanner input = new Scanner(System.in);
         i=input.nextLong();
         if(i<=100000)     
             bonus=i*0.1;
         else if(i<=200000)
             bonus=bon1+(i-100000)*0.075;
         else if(i<=400000)
             bonus=bon2+(i-200000)*0.05;
         else if(i<=600000)
             bonus=bon3+(i-400000)*0.03;
         else if(i<=1000000)
             bonus=bon4+(i-600000)*0.015;
         else      
             bonus=bon5+(i-1000000)*0.01;
         System.out.println("奖金是"+bonus);
    }

----------------------第十三题---------------------------
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?   
for(int i=1;i<100000;i++)
        {
            //判断开平方根出来的数小数部分是否为0, 
            if(Math.sqrt((i+100))%1==0 && Math.sqrt((i+100+168))%1==0)  
            {  
                System.out.println(i);  
            }  

        }

----------------------第十四题---------------------------
题目:输入某年某月某日,判断这一天是这一年的第几天?   
public static void main(String[] args)
    {       
            int y,m,d;  
            int sum=0;  
            int feb=28;  
            Scanner in = new Scanner(System.in);  
            System.out.print("请输入年份:");  
            y = in.nextInt();  
            System.out.print("请输入月份:");  
            m = in.nextInt();  
            System.out.print("请输入几号:");  
            d = in.nextInt();  

            if((y%4==0 && y%100!=0) || y%400==0)  
            {  
                feb = 29;  
            }  

            switch(m)  
                {  
                        case 1:  
                            sum = d;  
                            break;  
                        case 2:  
                            sum = 31 + d;  
                            break;  
                        case 3:  
                            sum = 31+feb+d;  
                            break;  
                        case 4:  
                            sum = 31+feb+31+d;  
                            break;  
                        case 5:  
                            sum = 31+feb+31+30+d;  
                            break;  
                        case 6:  
                            sum = 31+feb+31+30+31+d;  
                            break;  
                        case 7:  
                            sum = 31+feb+31+30+31+30+d;  
                            break;  
                        case 8:  
                            sum = 31+feb+31+30+31+30+31+d;  
                            break;  
                        case 9:  
                            sum = 31+feb+31+30+31+30+31+31+d;  
                            break;  
                        case 10:  
                            sum = 31+feb+31+30+31+30+31+31+30+d;  
                            break;  
                        case 11:  
                            sum = 31+feb+31+30+31+30+31+31+30+31+d;  
                            break;  
                        case 12:  
                            sum = 31+feb+31+30+31+30+31+31+30+31+30+d;  
            }  
            System.out.println(y+" 年 "+m+" 月 " + d + "号是今年的第"+sum+"天");

    }
----------------------第十五题---------------------------
题目:输入三个整数x,y,z,请把这三个数由小到大输出。

public static void main(String[] args)
    {       

            int getNum[] = new int[3];
            Scanner input = new Scanner(System.in);
            for (int i = 0; i < 3; i++)
            {
                System.out.println("请输入第"+(i+1)+"个数");
                getNum[i]= input.nextInt();
            }
            for (int i = 0; i < getNum.length; i++)
            {
                for (int j = i+1; j < getNum.length; j++)
                {
                    if(getNum[i]>getNum[j])
                    {
                        int temp;
                        temp =getNum[i];
                        getNum[i] = getNum[j];
                        getNum[j] = temp;
                    }
                }
            }
            System.out.print("x,y,z:由小到大排列为:");
            for (int i = 0; i < getNum.length; i++)
            {
                System.out.print(getNum[i]+" ");
            }
    }


----------------------第十六题---------------------------
题目:输出9*9口诀。 
public static void main(String[] args)
    {
        for (int i = 1; i <10; i++)
        {
            for (int j = i; j <10; j++)
            {
                System.out.print(i+"*"+j+"="+i*j+" ");
            }
            System.out.println("");
        }
    }

----------------------第十七题---------------------------
题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个     第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下     的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 

public static void main(String[] args)
    {
        int n = 1;
        for (int i = 1; i <= 10; i++)
        {           
            n = n*2+1;
        }
        System.out.println(n);
    }



----------------------第十八题---------------------------
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

public static void main(String[] args)
    {
        String[] temp1 = {"a","b","c"};  
            String[] temp2 =  {"x","y","z"};  
        for (int i = 0; i < temp1.length; i++)
        {
            for (int j = 0; j < temp2.length; j++)
            {
                if(i==0 && j ==0)
                {
                    continue;
                }
                else if((i==2&&j==0)||(i==2&&j==2))  
                {
                    continue;
                }
                else 
                {
                    System.out.println( temp1[i] + " " + temp2[j]);
                }
            }
        }

    }
----------------------第十九题---------------------------
题目:打印出如下图案(菱形)   
   *   
  ***   
 *****   
*******   
 *****   
  ***   
   *   


public static void main(String[] args)
    {
        for (int i = 0; i < 4; i++)
        {
            for (int j = 4; j > i+1; j--)
            {
                System.out.print(" ");
            }
            for (int j = 0; j < 2*i +1; j++)
            {
                System.out.print("*");
            }
            System.out.println("");
        }
        for (int i = 0; i < 3; i++)
        {
            for (int j = i+1; j > 0; j--)
            {
                System.out.print(" ");
            }
            for (int j = 5-(i*2); j > 0; j--)
            {
                System.out.print("*");
            }
            System.out.println("");
        }
    }

----------------------第二十题---------------------------
题目:有一分数序列:2/13/25/38/513/821/13...求出这个数列的前20项之和。
public static void main(String[] args)
    {
        double sum = 0; // 和的变量 
        double a = 1.0; // 分母 
        double b = 2.0; // 分子 
        for (int i = 1; i <= 20; i++)
        {
            sum = sum + b/a;
            double c = a; 
            b = a+b;
            a = c;

        }
        System.out.println(sum);
    }

----------------------第二十一题---------------------------
题目:求1+2!+3!+...+20!的和   
public static void main(String[] args)
    {
        int sub = 0; //和的变量 

        for(int i = 1; i <=20; i++)  
        {  
            int multiplySub =1; // 定义每个数的累乘 

            for (int j = i; j >=1; j--)  
            {  
                 multiplySub = multiplySub * j; //每个数的累乘的结果 
            }  
            sub = multiplySub + sub; //所有数累乘后相加的结果 
        }  
        System.out.println(sub);  
    }

----------------------第二十二题---------------------------
题目:利用递归方法求5!
public static void main(String[] args)
        {
             int x = 5;   
             int result = Sub(x);
             System.out.println("" + x + "! = " + result);
        } 
        public static int Sub(int x) 
         { /*阶乘算法*/   
            if (x > 1)
                return (x * Sub(x - 1)); /*递归*/
            else    
                return 1;
         }
----------------------第二十三题---------------------------
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

public static void main(String[] args)
        {
            int yearold = 10;
            for (int i = 1; i < 5; i++)
            {               
                yearold = yearold +2;
            }
            System.out.println("第五个人的年龄是:"+yearold);
        } 


----------------------第二十四题---------------------------   
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 

public static void main(String[] args)
        {
            char solvgetNum[] = new char [5];
            System.out.println("请输入一个不多于5位的正整数:");
            Scanner input =  new Scanner(System.in);
            String getNum = input.next();
            System.out.println(getNum.length());
            for (int i = 0; i < getNum.length(); i++)
            {
                solvgetNum[i] = getNum.charAt(i);

            }
            for (int i = getNum.length()-1; i >= 0; i--)
            {
                System.out.println(solvgetNum[i]);
            }       
        } 


----------------------第二十五题---------------------------    
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
public static void main(String args[])
    {
        int[] GetNum = new int[5];
        Scanner input =new Scanner(System.in);
        int num = input.nextInt();
        //万位
        GetNum[0] = num/10000;
        //千位
        GetNum[1] = (num-GetNum[0]*10000)/1000; 
        //百位
        GetNum[2] = (num-GetNum[0]*10000-GetNum[1]*1000)/100;
        //十位
        GetNum[3] = (num-GetNum[0]*10000-GetNum[1]*1000-GetNum[2]*100)/10; 
        //个位
        GetNum[4] = (num-GetNum[0]*10000-GetNum[1]*1000-GetNum[2]*100-GetNum[3]*10)/1;
        if(GetNum[0]+2==GetNum[1]+1&&GetNum[2]==GetNum[1]+1&&GetNum[2]==(GetNum[3]+1)&&(GetNum[3]+1)==(GetNum[4]+2))
        {
            System.out.println("是回文数");
        }
        else
        {
            System.out.println("不是回文数");
        }
    } 



----------------------第二十六题---------------------------   
题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续   判断第二个字母。
public static void main(String args[])
    {
        System.out.println("请输入星期几的字母");
        Scanner input = new Scanner(System.in);
        String getDay = input.next();
        char getDayFirst1 = getDay.charAt(0);
        switch (getDayFirst1)
        {
        case 'y':
            System.out.println("今天是星期一");
            break;
        case 'e':
            System.out.println("今天是星期二");
            break;
        case 's':
            char getDayFirst2 = getDay.charAt(1);
            if(getDayFirst2 == 'a')
            {
                System.out.println("今天是星期三");
            }
            else if(getDayFirst2 == 'i')
            {
                System.out.println("今天是星期四");
            }
            else
            {
                System.out.println("你的输入有误");
            }
            break;
        case 'w':
            System.out.println("今天是星期五");
            break;
        case 'l':
            System.out.println("今天是星期六");
            break;
        case 't':
            System.out.println("今天是星期天");
            break;

        default:
            System.out.println("你的输入有误");
            break;
        }
    }

----------------------第二十七题---------------------------   
题目:求100之内的素数
public static void main(String[] args)
    {
        int num = 1;
        int temp = 0;
        for (int i = 101; i <= 200; i++)
        {
            for (int j = 2; j < num; j++)
            {
                if(num % j == 0)
                {
                    temp =1;
                    break;
                }               
            }
            if(temp == 1)
            {               
                temp=0;
            }
            else
            {
                System.out.println(num);
            }
            num++;
        }   
    }  
----------------------第二十八题---------------------------   
题目:对10个数进行排序

 public static void main(String[] args)     
     {          
         Scanner input = new Scanner(System.in);
         int s[] = new int[10];
         for (int i = 0; i < s.length; i++)
         {
            System.out.println("请输入第"+(i+1)+"个数");
            s[i] = input.nextInt();
         }
         for (int i = 0; i < s.length; i++)
        {
            for (int j = i+1; j < s.length; j++)
            {
                if(s[i]>s[j])
                {

                    int temp;
                    temp = s[i];
                    s[i] = s[j];
                    s[j] = temp;
                }
            }
        }
         for (int i = 0; i < s.length; i++)
        {
            System.out.println(s[i]);
        }
     }

----------------------第三十一题---------------------------   
题目:对10个数进行排序
public static void main(String[] args)     
     {          
         int s[] = {1,2,3,4,5,6,7,8,9,10};
         for (int i= s.length-1; i >=0; i--)
        {
            System.out.println(s[i]);
        }
     }

----------------------第三十三题---------------------------   
题目:打印出杨辉三角形(要求打印出10行如下图)

 public static void main(String[] args)     
     {

            int i,j;
            int a[][] = new int[10][10];
            for(i=0;i<10;i++)
            {
                    a[i][i]=1;
                    a[i][0]=1; 
            }
            for(i=2;i<10;i++)
            {
                for(j=1;j<=i-1;j++)
                {
                    a[i][j]=a[i-1][j-1]+a[i-1][j]; 
                }
            } 
            for(i=0;i<10;i++)
            {
                for (int k = i; k < 10; k++)
                {
                    System.out.print(" ");
                }
                for(j=0;j<=i;j++)
                { 
                    System.out.print(a[i][j]+" ");
                }
                System.out.println();
            }
     }


----------------------第三十四题---------------------------    
题目:输入3个数a,b,c,按大小顺序输出。

public static void main(String[] args)     
     {
         Scanner input = new Scanner(System.in);
         int a = input.nextInt();
         int b = input.nextInt();
         int c = input.nextInt();
         if(a>b)
         {
             int temp = b;
             b = a;
             a = temp;       
         }
         if(a>c)
         {
             int temp = a;
             a = c;
             c = temp;       
         }
         if(b>c)
         {
             int temp = b;
             b = c;
             c = temp;       
         }
         System.out.print(a+" ");
         System.out.print(b+" ");
         System.out.print(c+" " );
     }

----------------------第三十五题---------------------------    
题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
    public static void main(String args[])
    {
    //定义一个数组
    int[] num4 = new int[5];
    //从键盘输入5个数
    Scanner input = new Scanner(System.in);
        System.out.println("请输入5个数");
        for (int i = 0; i < num4.length; i++)
        {
            num4[i] = input.nextInt();
        }
        //求出这5个数的最大值和最小值
        int max = num4[0];
        int min = num4[0];
        for (int i = 0;i < num4.length; i++)
        {
            if (num4[i] > max)
            {
                max = num4[i];
            }

            if (num4[i] < min)
            {
                min = num4[i];
            }
        }
        //如果数组中哪个数等于最大值(最小值),这个数就和第一个(最后一个)元素换位子
         for (int i = 0; i < num4.length; i++)
        {
            if(num4[i] == max)
            {
                int temp1;
                temp1 = num4[i];
                num4[i] = num4[0];
                num4[0] = temp1;
            }
            if (num4[i] == min)
            {
                int temp2;
                temp2 = num4[i];
                num4[i] = num4[4];
                num4[4] = temp2;
            }
        }
        //输出交换后的数 
         System.out.println("交换后");
        for (int i = 0; i < num4.length; i++)
        {
            System.out.println(num4[i]);
        }

    }

----------------------第三十八题---------------------------    
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

public static void main(String[] args)     
     {
         Scanner input = new Scanner(System.in);
         String str= input.next();
         System.out.println(str.length());
     }
----------------------第三十九题---------------------------     
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n

public static void main(String[] args)     
     {
         Scanner input = new Scanner(System.in);
         int n= input.nextInt();
         double result = 0;
         if(n%2==0)
         {
             for (double i = 2; i <= n; i=i+2)
            {
                result = result +1/i;
            }
         }
         else if(n%2==1)
         {
             for (double i = 1; i <= n; i=i+2)
                {
                    result = result +1/i;
                }
         }
         System.out.println(result);
     }
----------------------第四十题---------------------------     
题目:字符串排序。

public static void main(String[] args)
    {
        String str[] = new String[5];
        Scanner input = new Scanner(System.in);
        for (int i = 0; i < str.length; i++)
        {
            System.out.println("请输入第"+(i+1)+"个字符串");
            str[i] = input.next();          
        }
        Arrays.sort(str);
        for (int i = 0; i < str.length; i++)
        {
            System.out.println(str[i]+" ");
        }
    }

----------------------第四十一题---------------------------     
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子? 
public static void main(String[] args)
    {        
        int i = 4, m, j=0, count;        
        while(true) 
        {           
            count = 0; m = i;                
            for(int k=0;k<5;k++)
            {        
                j = m/4*5+1; //i代表下一个猴子能够看到的数,j 代表当前猴子能够看到的数
                m = j; 
                if(j % 4 == 0) 
                    count++; 
                else 
                    break; 
            }    

            if(count == 4) 
            { 
                System.out.println("一开始个数为:"+j); 
                break; 
            } 
            i += 4;         
        } 

    }

----------------------第四十三题---------------------------     
题目:求07所能组成的奇数个数。   
//组成1位数是4个。
//组成2位数是7*4个。
//组成3位数是7*8*4个。
//组成4位数是7*8*8*4个。
//......

public static void main(String[] args)
    {        
        Scanner input = new Scanner(System.in);
        System.out.println("请输入你要求奇数的位数");
        int n = input.nextInt();
            if(n == 1)
            {
                System.out.println(4);
            }
            else if(n == 2)
            {
                System.out.println(4*7);
            }
            else
            {
                System.out.println(4*7*Math.pow(2,3*(n-2)));
            }
    }

----------------------第四十六题---------------------------     
题目:两个字符串连接程序  
public static void main(String[] args)
    {        
        String a = "adasdasdasdas";
        String b = "fsdfdsfdsfdsfds";
        String c = a+b;
        System.out.println(c);
    }
----------------------第四十八题---------------------------     
题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。  

public static void main(String[] args)
    {        
        Scanner input = new Scanner(System.in);
        System.out.println("请输入 一个四位数:");
        char c[] = new char[4];
        String str = input.next();
        for (int i = 0; i < c.length; i++)
        {
            c[i] = str.charAt(i);
            System.out.println(c[i]);
        }
        int newstr[] = new int[4];
        for (int i = 0; i < newstr.length; i++)
        {       
            newstr[i] = (c[i]+5)%10;
        }
        int temp;
        temp = newstr[0];
        newstr[0] = newstr[3];
        newstr[3] = temp;
        int temp1;
        temp1 = newstr[1];
        newstr[1] = newstr[2];
        newstr[2] = temp1;
        for (int i = 0; i < newstr.length; i++)
        {
            System.out.print(newstr[i]);
        }

    }
----------------------第四十九题---------------------------     
题目:计算字符串中子串出现的次数 
public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String getStr = input.nextLine();

        int Blank = 0,Digit = 0,Letter = 0,Other = 0;
        for (int i = 0; i < getStr.length(); i++)
        {
            char c = getStr.charAt(i);
            if(c == ' ')
            {
                Blank++;
            }
            else if(Character.isDigit(c))
            {
                Digit++;u       v        
            }
            else if(Character.isLetter(c))
            {
                Letter++;
            }
            else
            {
                Other++;
            }
        }
        System.out.println("此字符串共有"+Blank+"个空格!");
        System.out.println("此字符串共有"+Digit+"个数字!");
        System.out.println("此字符串共有"+Letter+"个字母!");
        System.out.println("其他字符有"+Other+"个");

    }

----------------------第五十题---------------------------     
题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,把原有的数据和计算出的平均分数存放在磁盘文件 "stud "中。
public static void main(String[] args)
    {        
        String stud[][] =  new String[5][3];
        Scanner input = new Scanner(System.in);
        for (int i = 0; i < stud.length; i++)
        {
            System.out.print("请输入第"+(i+1)+"个同学的名字:");
            String name = input.next();
            for (int j = 0; j < 3; j++)
            {
                System.out.print("请输入"+name+"同学的第"+(j+1)+"门课的成绩:");
                stud[i][j] = input.next();
            }
        }

        for (int i = 0; i < stud.length; i++)
        {
            double avg  = 0;
            for (int j = 0; j < 3; j++)
            {
                System.out.print(stud[i][j]+" ");
                avg= avg + Integer.parseInt(stud[i][j]);
            }
            System.out.print(avg/3);
            System.out.println("");
        }
    }

你可能感兴趣的:(算法,基础算法)