Java开发实例大全:3月14日练习
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.math.BigDecimal;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// new Case019_100().test();
// new Case027().test();
// new Case034().test();
new Case037().test();
// new Case036().test();
// new Case042().test();
}
}
class Case019_100 {
public void test() {
// dispose019();
// dispose020();
// dispose021();
// dispose022();
// dispose023();
// dispose026();
// dispose034();
}
private void dispose019() {
System.out.println("Out");
System.err.println("Err");
}
private void dispose020() {
System.out.println("Your Input:");
String line = new Scanner(System.in).nextLine();
System.out.println("YOur Input:"+line);
}
private void dispose021() {
try {
// PrintStream out = new PrintStream(new FileOutputStream("./src/stdout"));
PrintStream out = new PrintStream("./src/stdout"); //这个地方可以优化
System.setOut(out);
System.out.println("nihao");
System.out.println("happy to see you.");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
private void dispose022() {
System.out.println("Input A Line:");
String line = new Scanner(System.in).nextLine();
//加密
char[] arr = line.toCharArray();
for (int i = 0; i < arr.length; i++) {
arr[i]=(char)(arr[i]^2000);
}
System.out.println("Encrypt Result: "+new String(arr));
//解密
for (int i = 0; i < arr.length; i++) {
arr[i]=(char)(arr[i]^2000);
}
System.out.println("Decode Result: "+new String(arr));
}
private void dispose023() {
System.out.println("Your Input:");
Long num = new Scanner(System.in).nextLong();
String result = num%2==0?"偶数":"奇数";
System.out.println("Result: "+result);
}
private void dispose026() {
//
System.out.println("2*16:" + (1<<5));
}
private void dispose034() {
int layer = 10;
int[][] arrs = new int[layer][layer];
for (int i = 0; i < layer; i++) {
for (int j = 0; j < layer; j++) {
arrs[i][j]=-1;
}
}
for(int i=0;i<layer;i++){
}
}
private void dispose037() {
int size = 10;
if (size % 2 == 0) {
size++;
}
int length = size/2+1;
boolean[][] arrs = new boolean[length][length];
for (int i = 0; i < length; i++) {
for (int j = 0; j < length; j++) {
if(i==j)
arrs[i][j]=true;
else
arrs[i][j]=false;
}
}
}
}
/*
需求:利用异或运算,完成不借助第三个变量实现两个数字的交换
核心公式:
A = A ^ B;
B = B ^ A;
A = A ^ B;
解析:
A = a; B = b;
A = a^b;
B = b^(a^b)=a;
A = (a^b)^(b^(a^b))=b;
*/
class Case027 {
public void test() {
dispose(10,20);
}
private void dispose(int a, int b){
System.out.println("a: "+a+" b: "+b);
a=a^b;
b=a^b;
a=a^b;
System.out.println("a: "+a+" b: "+b);
}
}
/*
需求:杨辉三角
*/
class Case034 {
public void test() {
dispose(10);
}
private void dispose(int layer){
int[][] arrs = new int[layer][layer+2];
//初始化二维数组
for (int i = 0; i < layer; i++) {
for (int j = 0; j < layer + 2; j++) {
arrs[i][j]=-1;
}
}
//
for (int i = 0; i < layer; i++) {
if (i == 0) {
arrs[i][1]=1;
arrs[i][0]=0;
arrs[i][2]=0;
continue;
}
int j;
for (j = 1; j <= i + 1; j++) {
arrs[i][j]=arrs[i-1][j]+arrs[i-1][j-1];
}
arrs[i][0]=0;
arrs[i][j]=0;
}
for(int m = 0;m<layer;m++){
for (int n = 1; n <= m+1; n++) {
System.out.printf("%4d",arrs[m][n]);
}
System.out.println();
}
}
}
/*
需求:计算1+1/2!+1/3!+...+1/20!
*/
class Case036 {
public void test() {
dispose(20);
dispose2(20);
}
private void dispose(int n) {
int[] arrs = new int[n+1];
for (int i = 1; i <= n; i++) {
if (i == 1) {
arrs[i]=1;
continue;
}
arrs[i]=arrs[i-1]*i;
}
double result = 0.0;
for (int i = 1; i <= n; i++) {
result += (double)1/(double)arrs[i];
}
System.out.println("Result:"+result);
}
//这种写法更精炼
private void dispose2(int n) {
BigDecimal sum = new BigDecimal(0.0);
BigDecimal factorial = new BigDecimal(1.0);
int i = 1;
while (i <= n) {
factorial = factorial.multiply(new BigDecimal(1.0/i));
sum=sum.add(factorial);
i++;
}
System.out.println("dispose2: "+sum);
}
}
/*
需求:空心菱形
*/
class Case037 {
public void test() {
dispose(10);
}
private void dispose(int size) {
if (size % 2 == 0) {
size++;
}
for (int i = 1; i <= size; i++) {
//特殊区域
if (i == 1 || i == size) {
for (int j = 1; j <= size / 2; j++) {
System.out.print(" ");
}
System.out.println("*");
continue;
}
if (i == size / 2 + 1) {
System.out.print("*");
for (int j = 2; j < size; j++) {
System.out.print(" ");
}
System.out.println("*");
continue;
}
//上半部分
if(i<size/2+1){
int area = size/2-1;
int layer = i-1;
int lx = area-layer+1;
int rx = layer;
printEdge(area,lx); //左边
printEdge(area,rx);//右边
System.out.println();
}
//下半部分
if(i>size/2+1){
int area = size/2-1;
int layer = i-size/2-1;
int lx = area-layer+1;
int rx = layer;
printEdge(area,rx);//左边
printEdge(area,lx); //右边
System.out.println();
}
}
}
private void printEdge(int area, int x) {
System.out.print(" ");
for(int i=1;i<=area;i++){
if (i == x) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
}
}
/*
需求:本实例接受用户在文本框中输入的单行数据,其中数据都是整型数字,
以不同数量的空格分割数字。将这个单行数据分解成一维数组,并从数组中提
取最小值。
*/
class Case042 {
public void test() {
String[] inputs = new String[]{
"12 23 34 21 23 12 323 2 2 3 ",
"12 23 34 23 ji 3 21 3 2 32 12 3 2 123"
};
for (int i = 0; i < inputs.length; i++) {
dispose(inputs[i]);
}
}
private void dispose(String str) {
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (!Character.isDigit(c) && !Character.isSpaceChar(c)) {
System.out.println("该输入有不合法字符");
return;
}
}
System.out.println("最小的值:"+findMin(split(str)));
}
private int[] split(String str) {
String[] ints = str.split(" +");
int[] result = new int[ints.length];
for (int i = 0; i < result.length; i++) {
result[i]=Integer.valueOf(ints[i]);
}
return result;
}
private int findMin(int[] nums) {
int min = nums[0];
for (int i = 0; i < nums.length; i++) {
if (nums[i] < min) {
min = nums[i];
}
}
return min;
}
}
Java开发实例大全:3月14日练习的更多相关文章
- 关于苹果开发证书失效的解决方式(2016年2月14日Failed to locate or generate matching signing assets)
前言: 从2月14日開始,上传程序的同学可能会遇到提示上传失败的提示. 而且打开自己的钥匙串,发现所有的证书所有都显示此证书签发者无效. Failed to locate or generate ma ...
- 关于16年2月14日以后上传AppStore出现:Missing iOS Distribution signing identity for...的问题
2016年2月14日以后打包上传AppStore会发现出现如下的问题: 导致问题的原因是:下边这个证书过期了 以下是苹果官方给出的回应: Thanks for bringing this to the ...
- eoe移动开发者大会—移动开发者的极客盛宴 2013年9月14日期待您的加入!!
2013 eoe移动开发者大会北京站即将盛大开启! 大会介绍 由国内最大的移动开发者社区eoe主办,在行业盟友的倾力支持下,集合了来自微软.Google.亚马逊.ARM等跨国公司业务负责人的 ...
- 湖人VS爵士!!科比4月14日最后一战,本赛季最高得分!狂得60分!!完美大逆转!!!
莫愁前路无知己,天下谁人不识君.科比,愿你如迈克尔·乔丹,仍然活跃在篮球界.退役不是结束,而是另一段人生的开始. 北京时间2016年4月14日,湖人101-96击败爵士,科比-布莱恩特告别战,20年职 ...
- 12月14日《奥威Power-BI销售计划填报》腾讯课堂开课啦
2016年的最后一个月也过半了,新的一年就要到来,你是否做好了启程的准备?新的一年,有计划,有目标,有方向,才不至于迷茫.规划你的2017,新的一年,遇见更好的自己! 所以 ...
- 2016年12月14日 星期三 --出埃及记 Exodus 21:9
2016年12月14日 星期三 --出埃及记 Exodus 21:9 If he selects her for his son, he must grant her the rights of a ...
- 2016年11月14日 星期一 --出埃及记 Exodus 20:5
2016年11月14日 星期一 --出埃及记 Exodus 20:5 You shall not bow down to them or worship them; for I, the LORD y ...
- 2016年10月14日 星期五 --出埃及记 Exodus 18:25
2016年10月14日 星期五 --出埃及记 Exodus 18:25 He chose capable men from all Israel and made them leaders of th ...
- Java Calendar获取年、月、日、时间
Java Calendar获取年.月.日.时间 Calendar c = Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00" ...
随机推荐
- C语言中.h和.c文件解析(转载)
转载:http://www.cnblogs.com/laojie4321/archive/2012/03/30/2425015.html 简单的说其实要理解C文件与头文件(即.h)有什么不同之处, ...
- 为何只能在其关联的线程内启动timer?(Qt会检查一致性,否则就不执行)
为何只能在其关联的线程内启动timer? 在QTimer源码分析(以Windows下实现为例) 一文中,我们谈到: QTimer的是通过QObject的timerEvent()实现的,开启和关闭定时器 ...
- 逻辑回归模型(Logistic Regression)及Python实现
逻辑回归模型(Logistic Regression)及Python实现 http://www.cnblogs.com/sumai 1.模型 在分类问题中,比如判断邮件是否为垃圾邮件,判断肿瘤是否为阳 ...
- Delphi 与 VC 共享接口和对象
我经常会用 Delphi 写一些工具和应用,为了扩展方便,大部分都会做成插件形式. 迫于某些原因,我的插件不得不用其他开发工具来完成,比如 VC. 于是有个大问题需要解决:如何让 D 和 VC 互相通 ...
- CentOS7中firewalld的安装与使用详解
一.软件环境 [root@Geeklp201 ~]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) 二.安装firewall ...
- VS2013设置release版本可调试
http://blog.csdn.net/caoshangpa/article/details/76575640
- 快速开发平台 WebBuilder 8.6发布
WebBuilder下载:http://www.geejing.com/download.html WebBuilder快速开发平台是基于Web面向服务的应用系统开发平台,可以方便快捷的搭建各类型企业 ...
- TopFreeTheme精选免费模板【20130626】
有一段时间没有发布的模板了,相信很多喜欢新模板的朋友有点焦急了!还好,今天我今天整理了13个最新的模板,主要是WordPress的,另外3个是关于Joomla的模板,他们分别是游戏主题.俱乐部主题以及 ...
- vue+TS(CLI3)
1.用CLI3创建项目 查看当前CLI的版本,如果没有安装CLI3的 使用npm install --global vue-cli来安装CLI 安装好CLI 可以创建项目了 使用vue create ...
- 30441数据定义语言DDL
数据定义:指对数据库对象的定义.删除和修改操作. 数据库对象主要包括数据表.视图.索引等. 数据定义功能通过CREATE.ALTER.DROP语句来完成. 按照操作对象分类来介绍数据定义的SQL语法. ...