求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;
    }
}
  • 11
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘟哒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值