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" ...
随机推荐
- MySql 小内存优化
MySql5.6启动内存近500M,如在小型机内存敏感的环境可能较大,下边配置会减少较多内存,至150M以下. performance_schema = OFF innodb_buffer_pool_ ...
- Qt+QZXing编写识别二维码的程序
本人最近在用Qt编写程序,需要用编写二维码识别功能.在网上搜寻一番,找到了QZXing.配置过程中确实出了一大把汗,这里我写这篇文章记录配置方法,替后人省一把汗吧!我的开发环境:MSVC2010 + ...
- Qt4学习笔记 (7) 本篇说一下Qt对于脚本的支持, 即QtScript模块.
本篇说一下Qt对于脚本的支持, 即QtScript模块. Qt支持的脚本基于ECMAScript脚本语言, 这个东西又是javascript, jscript的基础. 所以, 一般只要学过javasc ...
- WPF全局异常捕获
跟着<WPF专业编程开发指南>这书打的代码的,自己在正式项目中测试通过,可以抓取到全局的异常,用的log4net来记录日志 核心代码: 写在App.xaml.cs中 /// <sum ...
- VC控件自绘制三步曲
http://blog.csdn.net/lijie45655/article/details/6362441 实现自定义绘制的三步曲 既然您已经了解了绘制控件可用的各种选项(包括使用自定义绘制的好处 ...
- 一个拼图工具TImageBox的制作思路
http://www.cnblogs.com/del/archive/2010/04/24/1719631.html
- Flume NG高可用集群搭建详解
.Flume NG简述 Flume NG是一个分布式,高可用,可靠的系统,它能将不同的海量数据收集,移动并存储到一个数据存储系统中.轻量,配置简单,适用于各种日志收集,并支持 Failover和负载均 ...
- python中的while循环,格式化输出,运算符,编码
一.while循环 1.1语法 while 条件: 代码块(循环体) else: 当上面的条件为假的的时候,才会执行. 执行顺序:先判断条件是否为真,如果是真的,执行循环体,再次判断条件,直到条件不成 ...
- 简单看看jdk7源码之java.lang包01
从今天开始简单开始读一遍jdk的源码,估计这个时间会很长,慢慢啃吧....(首先说一句抱歉,因为很多图都是直接百度扣的,图太多了不能为每一个图附上原版链接,不好意思!) 在网上看了很多的教程,读源码有 ...
- spring 5.x 系列第9篇 —— 整合mongodb (xml配置方式)
源码Gitub地址:https://github.com/heibaiying/spring-samples-for-all 一.说明 1.1 项目结构说明 配置文件位于resources下,项目以单 ...