Java之旅——第四天


学习Java第四天(收获)


一.感想
今天是第四天,很有纪念意义的第四天。
这一天是我学习Java的第四天,由最初的一无所知,挫败,到现在可以用Java编码解决一些小小的问题,尽管有时候一道小小的题,我从开始写,写完,改错最终到运行出来,需要一两个小时甚至更多,但是这个解决问题的过程中,那种成就感,充实感,是其他任何事情所不能带给我的。与此同时,我发现我写代码的速度和成功率也在逐渐提升,我相信,终有一天我可以战胜你的!
这一天是我坚持每天不玩手机,不追剧,每天上课认真听讲,下课认真复习,坚持写代码,坚持背四级单词的第四天,我喜欢现在的状态,喜欢现在生活方式,也喜欢现在心中有目标,每天努力奋斗,心无旁骛的我。希望我可以一直一直保持下去,我也相信我一定会保持下去的!!!
以下呢是我今天写的代码哦,欢迎大家批评指教!

二,今天的成就

1.寻找一个数组中某一个元素
<1>.

public class  find{
     public static void main(String[] args){
	   int[] a={1,2,3,4,5,6,7,8,9,9};
	   int m=10;
	   System.out.println(indexof(a,m));
	   }

     public static int  indexof(int[] a,int v){
		 int i=0;
		  int ret=-1;
      while(i<a.length){
	    if(v==a[i])
	    {ret=i;  break;}
	else
	    i++;
	  }
	  return ret;
	}
}

结果:
在这里插入图片描述
<2>简化版:
public class find{
public static void main(String[] args){
int[] a={1,2,3,4,5,6,7,8,9,9};
int m=4;
System.out.println(indexof(a,m));
}

 public static int  indexof(int[] a,int v){
	 for (int i = 0; i < a.length; i++) {
		if (a[i] == v) {
			return i;
		}
	}
	
	return -1;
}
}

结果:
在这里插入图片描述

<3>二分查找法

public class  find{
     public static void main(String[] args){
	   int[] a={1,2,3,4,5,6,7,8,9,10};
	   int key=6;
	   int left=0;
	   int right=a.length-1;
	   System.out.println(indexof(a,key,left,right));
	   }
	   public static int  indexof(int[] a,int key ,int m,int n){
		   int mid=0;
		   while(m<=n){
			   mid=(m+n)/2;
			   if(a[mid]<key){
			   m=mid;
			   }
			   else if(a[mid]>key)
			   {
				   n=mid;
			   }
			   else
			      break;
		   }
		   if(m<=n)
		   {System.out.println("找到了");
	        return mid;
		   }
		   else
		     return -1;
	   }
}

结果:
在这里插入图片描述
2. 利用公式
* e = 1/0! + 1/1! + 1/2! + 1/3! + 1/4! + …
* 计算自然对数的底 e
* @param n 计算多少项
* @return
/
/
*

<1>

public class  find{
public static void main(String[] args) {
	int n=2;
	System.out.println(Sum(n));
}
public static double Sum(int m){
	double s=0.0;
	for(int i=0;i<=m;i++){
		s+=(1.0)/(jiechen(i));
	}
	System.out.println(s);
	return s;
}
public static int jiechen(int k){
	int ret=1;
	if(k>1){
		ret= k*jiechen(k-1);
	}
	return ret;
}
}

结果:
在这里插入图片描述
3. 利用公式
* Pi / 4 = 1/1 - 1/3 + 1/5 - 1/7 + 1/9 - …
* 计算 pi 的值
* @param n 一共计算多少项
* @return
*

<1>

public class  find{
public static void main(String[] args) {
	int n=10000;
	System.out.println(Sum(n)*4);
}
public static double Sum(int m){
	double s=0.0;
	for(int i=0;i<m;i++){
		if(i%2==0)
		s+=(1.0)/((2*i)+1);
	if(i%2!=0)
		s-=(1.0)/((2*i)+1);
	}
	System.out.println(s);
	return s;
}
}

在这里插入图片描述
<2>

public class  find{
public static void main(String[] args) {
	int n=10000;
	System.out.println(calcPi(n));
}
public static double calcPi(int n) {
		double pi4 = 0;
		
		for (int i = 0; i < n; i++) {
			int fenmu = 2 * i + 1;
			double item = 1.0 / fenmu;
			
			if (i % 2 == 0) {
				pi4 += item;
			} else {
				pi4 -= item;
			}
		}
		
		return pi4 * 4;
	}
}

结果:
在这里插入图片描述
4.
* 10 进制转 16 进制,计算公式如下例
* 1958 转 16 进制
* 1958 % 16 == 6 1958 / 16 == 122
* 122 % 16 == 10 也就是 A 122 / 16 == 7
* 7 < 16
* 1958 的 16 进制 为 7A6
* @param n
* @return
*

public class find{
	public static void main(String[] args){
			int n=1958;
			System.out.println(decToHex(n));
		}
		public static String reverse(String s) {
        int length = s.length();
        String r = "";
        for (int i = length - 1; i >= 0; i--) {
            r += s.charAt(i);
        }

        return r;
    }
		public static String decToHex(int n) {
		String r = "";
		
		while (n > 16) {
			int yushu = n % 16;
			int shang = n / 16;
			
			if (yushu > 9) {
				char c = (char)((yushu - 10) + 'A');
				r += c;
			} else {
				r += yushu;
			}
			
			n = shang;
		}
		
		if (n > 9) {
			char c = (char)((n - 10) + 'A');
			r += c;
		} else {
			r += n;
		}
		
		return reverse(r);
	}	
	
}

结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值