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" ...
随机推荐
- synchronized 专题
这几天不断添加新内容,给个大概的提纲吧,方面朋友们阅读,各部分是用分割线隔开了的: synchronized与wait()/notify() JMM与synchronized ThreadLocal与 ...
- 关于powerdesigner中的data types说明
原文:关于powerdesigner中的data types说明 这一堆的数据类型看着真是头大,弄个表格对照一下. Numeric data types Standard datatype DBMS- ...
- lvcreate命令
lvcreate Command Examples on Linux : 1. The following command creates a logical volume 15 gigabytes ...
- asp.net网站在手机浏览器上全屏显示
前段时间要把asp.net 网站,在手机上全屏浏览,发现总是小小的一块,不能全屏 后来发现 JQuery Mobile 中在开头都用 <meta name="viewport&quo ...
- 最小二乘法 good
最小二乘法也称为最小平方法,是一种数据优化技术,它通过最小化误差的平方和寻找数据的最佳函数匹配. 最小二乘法最初由高尔顿在创立回归分析的时候提出,现在已经成为探索变量间关系最重要的方法,最小二乘法根据 ...
- Android卡片设置透明度失效问题
最近在做蓝牙电话项目,需要支持双路通话,涉及到通话卡片透明度调节,当正在通话中,有新的来电时,原来的通话卡片需要做成30%的透明度,本来很简单的一个小改进,但通过 setAlpha()接口总是失效! ...
- SAP HANA 开发模式 - 基于SAP HANA平台的多团队产品研发
“基本”开发模式 Windows: Unix/Linux: 在基本模式下我们可以通过regi来进行激活我们的object.Regi是一个类git功能的,方便和HANA repository交互的一个命 ...
- 关于防范csrf攻击基于token鉴权
在web开发中,之前都使用cookie + session方式来实现身份认证鉴权.但是现在前后端分离,以及终端有可能不支持cookie的情况下,一般都采用token方式.现在系统设计思路如下: 服务端 ...
- 生产环境MySQL优化
a:硬件的优化: 1. 采用64位cpu,cpu至少4颗,L2缓存越大越好2. 内存要大,32-64G运行1-2个实例,96-128G运行3-4个实例3. 机械盘选用sas盘,转速15000以上,有可 ...
- 5个现在就该使用的数组Array方法: indexOf/filter/forEach/map/reduce详解(转)
ECMAScript5标准发布于2009年12月3日,它带来了一些新的,改善现有的Array数组操作的方法.然而,这些新奇的数组方法并没有真正流行起来的,因为当时市场上缺乏支持ES5的浏览器. ...