算法分享--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("");
        }
    }
發佈了38 篇原創文章 · 獲贊 152 · 訪問量 33萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章