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" ...
随机推荐
- FC红白机游戏列表(维基百科)
1055个fc游戏列表 日文名 中文译名 英文版名 发行日期 发行商 ドンキーコング 大金刚 Donkey Kong 1983年7月15日 任天堂 ドンキーコングJR. 大金刚Jr. Donkey K ...
- Android零基础入门第88节:Fragment显示和隐藏、绑定和解绑
在上一期我们学习了FragmentManager和FragmentTransaction的作用,并用案例学习了Fragment的添加.移除和替换,本期一起来学习Fragment显示和隐藏.绑定和解绑. ...
- C#实现bitmap图像矫正
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 转载 《TypeScript 类型定义 DefinitelyTyped》
快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中. <HTML开发Mac OS App 视频教程> 土豆网同步更新:http: ...
- OpenGL与Directx的区别
OpenGL 只是图形函数库. DirectX 包含图形, 声音, 输入, 网络等模块. 单就图形而论, DirectX 的图形库性能不如 OpenGL OpenGL稳定,可跨平台使用.但 OpenG ...
- Design Thinking Workshop @ Agile Tour 2013 Shanghai
设计思维工作坊 上周日在2013年敏捷之旅上海站,引导分享了一个设计思维的工作坊.这个工作坊持续了3个小时.来篇流水账分享给大家. 我们的设计挑战是什么呢?左思右想,在准备设计挑战题目的时候纠结了好久 ...
- php PAC 安装
LIUNX wget http://pecl.php.net/get/APC-3.1.8.tgz tar -zxvf APC-3.1.8.tgz cd APC-3.1.8 /usr/local/php ...
- Spring_two
Spring_two 基于注解的IOC配置 准备工作(参考上一篇) ); 接口的实现类AccountDaoImpl.java修改 /** * 账户的持久层实现类 */ @Repository(&quo ...
- 实现h5公众号分享功能(vue项目也适用)
在vue项目中我们先npm install weixin-js-sdk --save下载下来在main.js文件中引入 import wx from 'weixin-js-sdk';//引入 Vue. ...
- Java多线程(三):Synchronized
多线程安全 脏读:多个线程对同一个对象的实例变量进行修改后访问,导致读到的数据是被修改过的. 实例 ThreadDomain16类 public class ThreadDomain16 { priv ...