T1191,T1142,T1312,T1957

  • T1191
  • T1142
  • T1312
  • T1957

T1191

一个笼子里面关了鸡和兔子(鸡有 2 只脚,兔子有 4 只脚,没有残疾的)。已经知道了笼子里面脚的总数 a,问笼子里面至少有多少只动物,至多有多少只动物。

解析:分析知 总数a 是 2 的倍数,鸡兔同笼才有解法 否则 无解
假如 a % 2 == 0,则最大数量 就是全鸡 a / 2,
假如 (temp = a / 2) % 2 == 0,则最小数量 就是全兔 temp / 2,否则最小数量就是 一鸡全兔 (temp - 1) / 2 + 1

package com.java3.ch4;import java.util.Scanner;public class T1191 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int a = scan.nextInt();int maxAmount = 0;int minAmount = 0;if(a % 2 == 0){int temp = a / 2;maxAmount = temp;if(temp % 2 == 0){minAmount = temp / 2;}else{minAmount = (temp - 1) / 2 + 1;}}System.out.println(minAmount + " " + maxAmount);}
}
20
5 10

T1142

幻方是一个很神奇的N×N 矩阵,它的每行、每列与对角线,加起来的数字和都是相同的。我们可以通过以下方法构建一个幻方。(阶数为奇数)

第一个数字写在第一行的中间

下一个数字,都写在上一个数字的右上方:

  • 如果该数字在第一行,则下一个数字写在最后一行,列数为该数字的右一列
  • 如果该数字在最后一列,则下一个数字写在第一列,行数为该数字的上一行
  • 如果该数字在右上角,或者该数字的右上方已有数字,则下一个数字写在该数字的下方

解析:使用 int型的二维数组来存储这个幻方,已知幻方存储数据时 下一个数字 依赖于 上一个数字插入的行数和列数,并且给出第一次插入数据的行数和列数,构造Recode类来记录上一个数字插入的行数和列数,并通过在插入下一个数字后 修改行数和列数,

package com.java3.ch4;import java.util.Scanner;public class T1142 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int N = scan.nextInt();int orderOfMatrix = 2*N - 1;int[][] array = new int[orderOfMatrix][orderOfMatrix];Recode r = new Recode();//第一次插入array[0][orderOfMatrix / 2] = 1;r.setRow(0);r.setLine(orderOfMatrix / 2);//插入数据for(int i = 2;i <= (2*N -1) * (2*N -1);i++){writeArray(array,orderOfMatrix,r,i);}//输出数据for(int i = 0; i< orderOfMatrix;i++){for(int j = 0; j< orderOfMatrix;j++){System.out.print(array[i][j] + " ");}System.out.println();}}public static void writeArray(int[][] arr, int orderOfMatrix, Recode r, int values){/*arr:待填充数据的数组orderOfMatrix:矩阵的阶数r:Recode类的实例 其中row,line属性记录上一次插入数值的行数和列数values:当前正准备插入的数值*/int row = r.getRow();int line = r.getLine();//如果该数字在第一行,则下一个数字写在最后一行,列数为该数字的右一列int newRow = (row == 0)?(orderOfMatrix - 1):(row - 1) % orderOfMatrix;//如果该数字在最后一列,则下一个数字写在第一列,行数为该数字的上一行int newLine = (line + 1) % orderOfMatrix;//如果该数字在右上角,或者该数字的右上方已有数字,则下一个数字写在该数字的下方boolean isUpperRight = (row == 0) &&(line == (orderOfMatrix - 1));if(isUpperRight || arr[newRow][newLine] != 0){newRow = (row + 1) % orderOfMatrix;newLine = line;arr[newRow][newLine] = values;}else{arr[newRow][newLine] = values;}r.setRow(newRow);r.setLine(newLine);}
}class Recode{int row;int line;public int getRow() {return row;}public void setRow(int row) {this.row = row;}public int getLine() {return line;}public void setLine(int line) {this.line = line;}
}
3
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9

T1312

考试的时候老师最讨厌有人抄袭了。自从有了电子评卷,老师要查找雷同卷,就容易多了,只要将两个人的答案输入计算机,进行逐个字符的比对,把相同的位置都找出来,就一目了然了。

解析:使用 scan.nextLine() 接受数据 去循环长度等于较短字符串的长度 分别比较每个字符是否相同

package com.java3.ch4;import java.util.Scanner;public class T1312 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);String str1 = scan.nextLine();String str2 = scan.nextLine();
//        String str1 = "I am  suantoujun.";
//        String str2 = "I am  huayemei.";//        System.out.println(str1);
//        System.out.println(str2);char[] arrayStr1 = str1.toCharArray();char[] arrayStr2 = str2.toCharArray();int lenStr1 = arrayStr1.length;int lenStr2 = arrayStr2.length;int len = (lenStr1 > lenStr2)?lenStr2:lenStr1;for(int i = 0;i < len;i++){if(arrayStr1[i] == arrayStr2[i]){System.out.print((i + 1) + " ");}}}
}
I am  suantoujun.
I am  huayemei.
1 2 3 4 5 6 8 9

T1957

输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数

解析:找对其对应的 ASCII码值的范围 分别对应即可

package com.java3.ch4;import java.util.Scanner;public class T1957 {public static void main(String[] args) {Scanner scan = new Scanner(System.in);String str = scan.nextLine();char[] array = str.toCharArray();int[] count = new int[4];for(int i = 0;i < array.length;i++){int temp = (int)array[i];//大写字母 65-90 小写字母 97-122if((temp >= 65 && temp <= 90) || (temp >= 97 && temp <= 122)){count[0]++;}else if(temp >= 48 && temp <= 57){//数字0-9:48-57count[1]++;}else if(temp == 32){//空格 32count[2]++;}else{count[3]++;}}for(int i = 0;i < count.length;i++){System.out.print(count[i] + " ");}}
}
aklsjflj123 sadf918u324 asdf91u32oasdf/.';123
23 16 2 4

T1191,T1142,T1312,T1957相关推荐

  1. 手把手教你JavaEE的分页查询、分页展示,有了这个,你的项目又多了一个谈资

    前言: 我们在写项目的时候,往往有一些项目的信息展示.而展示的数据量往往是很大的,这时候,加入一个分页的功能往往是最理想的选择. 先简单描述一下功能: 根据你的数据量和指定的页面展示数据条数,进行查询 ...

  2. NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存

    NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...

  3. 不要抱怨,勇敢向前走,你就能拥有更好的自己

    最近半年我无意间看了三个视频:"其中有两个大学生,还有一个博士:毕业几年了都没有工作在家里肯老.可是,他们家境并不好,他们的父母着急得没办法叫了记者和警察". 他们抱怨自己的出身不 ...

  4. 毕业,新的开始,撸起袖子加油干!

    毕业假期: 飞奔回家 6月底,终于忙完了学校了的各种事,迎来了自己的毕业旅行,我选择回家,在家休息了一周. 回家的感觉,整个人慢了下来,和自己静静的相处了几天,调整了身体和心态. 回家的几天,父母也放 ...

  5. CVPR 2020几篇论文内容点评:目标检测跟踪,人脸表情识别,姿态估计,实例分割等

    CVPR 2020几篇论文内容点评:目标检测跟踪,人脸表情识别,姿态估计,实例分割等 CVPR 2020中选论文放榜后,最新开源项目合集也来了. 本届CPVR共接收6656篇论文,中选1470篇,&q ...

  6. Python数据挖掘1:创建一位数组和二维数组,取最大最小值,切片

    ''' 来源:天善智能韦玮老师课堂笔记 1.numpy 可以高效处理数据.提供数组支持.很多模块都依赖他,比如pandas.scipy.matplotlib都依赖他,所以这个模块是基础. 2.pand ...

  7. AndroidStudio git 提交代码,创建分支,合并分支,回滚版本,拉取代码

    主要有: 提交代码,创建分支,合并分支,回滚版本,拉去代码 1 首先电脑中下载git 2 新建的项目把.git 仓库放到项目总中as 工具的右下角 会显示 Git:master 点击有一个弹框如下 然 ...

  8. 多个矩形,求覆盖面积,周长,及交点

    问题:给出若干个矩形,(给的是矩形左上角和右下角坐标),求最后所得图形的面积/周长: 三个矩形如左图所示,而若要计算面积,看右图,用3个矩形各自的面积之和减去重复部分(红色和蓝色)的面积 人算很简单, ...

  9. 《创业维艰分享之五》所有得,有所乐,日事日清,循序渐进。

    这两个月公司连续做了两个大客户紧接着发布新版本再然后又是连续五个小版本迭代计划. 每天16小时的超强度工作,我已经看到兄弟的脸上都写着一个字:累! 我自己又何尝不是,既是客服,又是程序员,还必须是行政 ...

最新文章

  1. puppet子命令介绍
  2. Aix oracle 自动启动,AIX如何自动启动和关闭软件的运行
  3. 设计模式(5)----模板方法
  4. Python编程从入门到实践~文件读取
  5. 同比 数据模型 环比_历史数据模型解决方案-历史数据模型解决方案
  6. Linux系统安装及配置——Centos-7-X86_64-DVD-2009
  7. c#数据库事务锁类型
  8. Notepad++ 64位 Jsonviewer Compareplugin 安装
  9. [转载] New Concept English 1——Lesson 12 Whose is this…?This is my/your/her…
  10. gps天线拆解图片_GPS天线原理
  11. xp系统打印机服务器报错,win10系统连接xp系统共享打印机报错0x000004的具体方法...
  12. 金额中文大写c语言,C语言编程:数字金额转换为中文大写金额?
  13. Flink整合kafka并基于事件源生成时间戳以及水印
  14. cin gt gt n是c语言中的什么,c++中cinna是什么意思
  15. Noip2018 退役记(Last update 11/20)
  16. Android GoogleMap 接入
  17. 如何制作视频抠图?制作视频抠像的教程分享给你
  18. 主成分分析法及特征值的含义
  19. MySQL调优是程序员拿高薪的必备技能?
  20. 一起学Netty(六)之 TCP粘包拆包场景

热门文章

  1. Wannacry勒索蠕虫对企业安全有哪些影响?企业安全又将如何捍卫?看安普诺CEO怎么说
  2. 中国网站分析市场格局
  3. 戴文的linux内核专题 24,戴文的Linux内核专题:26 配置内核 (22)
  4. windows查看文件被哪个进程占用
  5. excel 两组数据交点_道路中线测量中的交点和转点的测设详解
  6. PDF水印工具正式推出
  7. CS244W: Machine Learning with Graphs (3) ——网络中的Motifs和结构
  8. 在win10系统上安装一个winXP系统的虚拟机
  9. iText生成pdf(图片转PDF)
  10. QT widget实现手机界面滑屏效果,支持鼠标滑动,触摸屏上滑动