1. 程式人生 > >求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字

求s=a+aa+aaa+aaaa+aa...a的值,其中a是一個數字

求s=a+aa+aaa+aaaa+aa…a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),
幾個數相加有鍵盤控制。

演算法思想分析 
/*
     * 1.怎麼得到這幾個數, 2+22+222+2222+22222 抽取成
     *  2+0*10 
     *  2+2*10(2是上一個算式的和)
     *  2+22*10(22是上一個算式的和)
     *  2+222*10(222是上一個算式的和)
     *  2+2222*10(2222是上一個算式的和)
     * 看到這裡你會想到這是累加,一個累加求這幾個數,一個累加求和.
     */
public static void main(String[] args) { Scanner sca = new Scanner(System.in); System.out.println("請輸入一個數"); int num = sca.nextInt(); int n=0, sum =0; for (int i = 1; i <= 5; i++) { n = n*10 + num; sum=sum+n; } System.out
.println(sum); }

九九乘法表:

public class Test1 {
    public static void main(String[] args) {
        for(int i = 1;i <= 9;i++) {
            for(int j = 1;j <= i;j++) {
        //“\t”代表製表符     System.out.print(j+"*"+i+"="+i*j+'\t');
            }
            System.out.println();
        }
    }
}

列印輸出的結果為:
這裡寫圖片描述

求1—100的偶數和:

int sum = 0;       //sum要初始化為0,定義這個變數只能在for迴圈外面
        for(int i = 0; i <= 100; i++) {
            if(i % 2 == 0) {   //求偶數和  找出這個if判斷的條件
                //奇數和可以把條件改為 i % 2 == 1
            sum = sum + i;
            }
        }
        System.out.println("sum = " + sum);

根據輸入的行數和列數列印:

public class Test3 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請輸入行數");
        int a = scanner.nextInt();
        System.out.println("請輸入列數");
        int b = scanner.nextInt();
        printStar(a,b);
    }
    public static void printStar(int a ,int b) {
        for(int i = 1;i <= a;i++ ) {
            for(int j = 1;j <= b;j++) {
                System.out.print("我愛你"+'\t');
            }
            System.out.println();
        }
        return;

    }
}

簡單的猜數字小遊戲(1-100之間,鍵盤輸入所猜的資料):

public class GuessNumber {
    public static void main(String[] args) {
        /*
         * 需求:猜數字小遊戲(資料在1-100之間)
         */
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入一個整數");
        int randomNum = (int) (Math.random() * 100 + 1);
        while (true) {
            int num = sc.nextInt();
            if (num == randomNum) {
                System.out.println("猜對了");
                break;
            } else if (num > randomNum) {
                System.out.println("大了");
            } else {
                System.out.println("小了");
            }
        }
    }
}

java實現控制檯五子棋:

package baishenghua.view;
import static java.lang.System.out;

import java.util.Scanner;
public class FiveChessView {
    //17行17列的二維陣列,儲存棋盤資訊
    public static char[][] fiveChess = new char[17][17];
    public static Scanner sc = new Scanner(System.in);
    /**
     * 0.主方法
     * @param args
     */
    public static void main(String[] args) {
        init();//方法呼叫,呼叫初始化棋盤佈局的方法,初始化棋盤介面資訊
//      printChessView();//方法呼叫,呼叫列印棋盤佈局的方法
//      int flag =1;//是否退出程式
//      while(true){
//          System.out.println("請輸入座標[0,0]:");
//          int row = sc.nextInt();
//          int col = sc.nextInt();
//          fiveChess[row+1][col+1] = '@';
//          printChessView();   
//      }
        out.println("***************************");
        out.println("               五子棋遊戲v1.0     ");
        out.println("     1.開始遊戲     ");
        out.println("     0.退出遊戲     ");
        out.println("***************************");
        out.println("請選擇:     ");
        int cmd = sc.nextInt();
        switch(cmd){
            case 0:quit();break;
            case 1:start();break;
            default:out.println("命令輸入有誤!");
        }
    }

    /**
     * 1.初始化棋盤佈局的方法
     */
    public static void init(){//初始化棋盤佈局
        fiveChess[0][0] = ' ';
        for (int i = 1; i < 17; i++) {//第一行資訊初始化
            if (i < 11) {
                fiveChess[0][i] = (char)(48+i-1);
            } else {
                fiveChess[0][i] = (char) (i - 11 + 'a');
            }
        }
        for (int i = 1; i < 17; i++) {//第一列資訊初始化
            if (i < 11) {
                fiveChess[i][0] = (char)(48+i-1);
            } else {
                fiveChess[i][0] = (char) (i - 11 + 'a');
            }
        }
        for(int i=1;i<17;i++){//除第一行和第一列外資訊初始化
            for(int j=1;j<17;j++){
                fiveChess[i][j]= '*';
            }
        }
    }
    /**
     * 2.列印棋盤佈局的方法
     */
    public static void printChessView(){//列印棋盤佈局
        for(int i=0;i<17;i++){
            for(int j=0;j<17;j++){
                System.out.print(fiveChess[i][j]+" ");
            }
            System.out.println();
        }
    }
    /**
     * 3.退出遊戲介面的方法
     */
    public static void quit(){
        out.println("***************************");
        out.println("成功退出遊戲!");
        out.println("***************************");
        System.exit(0);//退出控制檯應用程式
    }

    /**
     * 4.開始遊戲介面的方法
     */
    public static void start(){
        out.println("***************************");
        out.println("開始遊戲");
        out.println("1.黑色");
        out.println("0.白色");
        out.println("***************************");
        out.println("選擇棋子的顏色:");
        int color = sc.nextInt();
        printChessView();
        startGame(color);//方法呼叫,呼叫startGame();方法
    }

    /**
     * 5.開始下棋的方法
     */
    public static void startGame(int color){
        while(true){
            if(color==0){
                out.println("請白色棋子方下棋[行列]:");
                String site = sc.next();//從控制檯獲取使用者輸入下棋的位置行列座標
                char row = site.charAt(0);//獲取site變數下標為0的,第一個字元
                char col = site.charAt(1);//獲取site變數下標為1的,第二個字元
                int r = charToInt(row);
                int c = charToInt(col);

                if(r>=0&&c>=0){
                    if(havaChess(r,c)==0){
                        fiveChess[r+1][c+1] = 'O';
                        out.println("你輸入的座標為:"+row+"行"+col+"列");
                        //白色棋子方下棋成功,則輪到對方下棋,棋子顏色應該改變為黑色
                        printChessView();
                        if(winAtAll(color,r,c)>0){
                            out.println("白色棋子方獲勝!");
                            out.println("重新開始遊戲嗎?(y|n)");
                            String cmd = sc.next();
                            if(cmd.charAt(0)=='y'){
                                init();//重新初始化棋盤資訊
                                start();//呼叫重新開始的方法
                            }else{
                                out.println("遊戲結束!");
                                System.exit(0);
                            }
                        }
                        color = 1;
                    }

                }

            }else if(color==1){
                out.println("請黑色棋子方下棋[行列]:");
                String site = sc.next();//從控制檯獲取使用者輸入下棋的位置行列座標
                char row = site.charAt(0);//獲取site變數下標為0的,第一個字元
                char col = site.charAt(1);//獲取site變數下標為1的,第二個字元
                int r = charToInt(row);
                int c = charToInt(col);
                if(r>=0&&c>=0){
                    if(havaChess(r,c)==0){
                        fiveChess[r+1][c+1] = '@';
                        out.println("你輸入的座標為:"+row+"行"+col+"列");
                        printChessView();
                        if(winAtAll(color,r,c)>0){
                            out.println("黑色棋子方獲勝!");
                            out.println("重新開始遊戲嗎?(y|n)");
                            String cmd = sc.next();
                            if(cmd.charAt(0)=='y'){
                                init();
                                start();
                            }else{
                                out.println("遊戲結束!");
                                System.exit(0);
                            }
                        }
                        //黑色棋子方下棋成功,則輪到對方下棋,棋子顏色應該改變為白色
                        color = 0;
                    }

                }
            }else{
                out.println("棋子顏色選擇錯誤,請重新選擇!");
            }
        }
    }
    /**
     * 6.轉換方法
     * 功能:是把字元轉換成對應的整型數字
     * 描述:例如:'0'->0,'1'->1,,'2'->2,'3'->3,'4'->4.......,'9'->9
     * ,'a'->10,,'b'->11,'c'->12,'d'->13,'e'->14,'f'->15
     * 除了0-9和a-f其他字元轉化成-1,
     * -1代表座標位置不正確,座標越界
     * 否則返回該字元所對應的整數型值
     * @param ch
     */
    public static int charToInt(char ch){
        if(ch>='0'&&ch<='9'){//該字元在'0'-'9'
            return (int)(ch -'0');//資料型別的轉換,隱式轉換:從小範圍到大範圍
        }else if(ch>='a'&&ch<='f'){//該字元在'a'-'f'
            return (int)(ch-'a'+10);//資料型別的轉換,從小範圍到大範圍隱式轉換(char轉成其對應的ascii編碼值)
        }
        return -1;
    }
    /**
     * 7.判斷是否有棋子的方法
     * @param r 行座標
     * @param c 列座標
     * @return 1代表棋子  0代表沒有棋子
     */
    public static int havaChess(int r,int c){
        if(fiveChess[r+1][c+1]=='*'){
            return 0;
        }
        return 1;                                                                                         
    }

    /**
     * 8.0 判斷所有方向輸贏的方法
     * @param color 棋子的顏色
     * @param r 行座標
     * @param c 列座標
     * @return 1代表贏  0代表未贏
     */
    public static int winAtAll(int color, int r, int c) {
        if (winAtH(color, r, c) > 0 || winAtV(color, r, c) > 0
                || winAtR(color, r, c) > 0 || winAtL(color, r, c) > 0) {
            return 1;
        }
        return 0;
    }

    /**
     * 8.1判斷水平方向輸贏的方法
     * @param color 棋子的顏色
     * @param r 行座標
     * @param c 列座標
     * @return 1代表贏  0代表未贏
     */
    public static int winAtH(int color, int r, int c){
        int counter = 1;//統計棋子個數
        for(int i=c+2;i<17;i++){//向右判斷
            if(fiveChess[r+1][i]==(color>0?'@':'O')){
                counter++;
            }
        }
        for(int i=c;i>0;i--){//向左判斷
            if(fiveChess[r+1][i]==(color>0?'@':'O')){
                counter++;
            }
        }
        if(counter>=5){
            return 1;
        }
        return 0;
    }
    /**
     * 8.2判斷垂直方向輸贏的方法
     * @param color 棋子的顏色
     * @param r 行座標
     * @param c 列座標
     * @return 1代表贏  0代表未贏
     */
    public static int winAtV(int color, int r, int c){
        int counter = 1;//統計棋子個數
        for(int i=r+2;i<17;i++){//向下判斷
            if(fiveChess[i][c+1]==(color>0?'@':'O')){
                counter++;
            }
        }
        for(int i=r;i>0;i--){//向上判斷
            if(fiveChess[i][c+1]==(color>0?'@':'O')){
                counter++;
            }
        }
        if(counter>=5){
            return 1;
        }
        return 0;
    }
    /**
     * 8.3判斷右上方向輸贏的方法
     * @param color 棋子的顏色
     * @param r 行座標
     * @param c 列座標
     * @return 1代表贏  0代表未贏
     */
    public static int winAtR(int color, int r, int c){
        int counter = 1;//統計棋子個數
        for(int i=r,j=c+2;i>0&&j<17;i--,j++){//向右上方向判斷
            if(fiveChess[i][j]==(color>0?'@':'O')){
                counter++;
            }
        }
        for(int i=r+2,j=c;j>0&&i<17;i++,j--){//向左下方向判斷
            if(fiveChess[i][j]==(color>0?'@':'O')){
                counter++;
            }
        }
        if(counter>=5){
            return 1;
        }
        return 0;
    }
    /**
     * 8.4判斷左上方向輸贏的方法
     * @param color 棋子的顏色
     * @param r 行座標
     * @param c 列座標
     * @return 1代表贏  0代表未贏
     */
    public static int winAtL(int color, int r, int c){
        //需要填充實現程式碼
        return 0;
    }
}