算法题积累 切面条

阅读: 评论:0

算法题积累 切面条

算法题积累 切面条

一、切面条

一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?

/*** 思路一:算弯道* 不折    直线2   折点为0* 折一次  直线2   折点为1(2^0)* 折两次  直线2   折点为3(2^0+2^1)* 折三次  直线2   折点为7(2^0+2^1+2^2)* 折四次  直线2   折点为15(2^0+2^1+2^2+2^3)* ……* 折N次  直线2   折点为2^N-1(2^0+2^1+2^2+2^3+……+2^(N-1))* * --------------------------* 一个折点代表一条线  总条数=直线+折点*/private double t1(int a) {double s = 2;if (a==0) return s;s = Math.pow(s,a-1) + t1(a-1);return s;}
/*** 思路二:每一次折至少有一个折点,这个折点在每次折的时候都不会翻倍,所以下一次折的条数是2*(上一次折的条数-1)+1(不会翻倍的折点)* 不折    2* 折一次  3 2*(2-1)+1* 折两次  5 2*(3-1)+1* 折三次  9 2*(5-1)+1* 折四次  17 2*(9-1)+1* ……* 折N次  2(N-1)+1** --------------------------* 一个折点代表一条线  总条数=直线+折点*/private double t2(int a) {int sum = 2;for (int i = 1; i <= a; i++) {sum = (sum-1)*2+1;// sum = sum*2-1}return sum;}

二、数字中有两个数出现奇数次,其余数出现偶数次,分别求出这两个值?

假设两个出现奇数次的数为a、b,现将所有数异或,结果必然为a^b,如果此时a^b!=0,则必定在二进制数字某个位置存在1,这表明a和b在该位上不相等,根据这个条件,将该位上为1和为0的分别取出与a^b与,结果便可算出。

public class Xor extends GetTwoValues{public void getTwoValuesByXor(int[] arr) {GetTwoValues getTwoValues = new GetTwoValues() {/*** 通过异或获取数组中出现奇数次的两个数** @param arr* @date 2022/5/30 11:00*/@Overridepublic void getTwoOddOccurrenceValuesFromAnArrayByXor(int[] arr) {int a = 0, b, eor = 0;// 获取a^bfor (int i : arr) {eor ^= i;}/** 获取a^b最右边为1的值* a         1100* b         1011* eor       0111* ~eor      1000* ~eor + 1  1001* rightOne  0001*/int rightOne = eor & (~eor + 1);for (int i : arr) {// 与rightOne &后为0,表示该位置为0(xxx0)if ((rightOne & i) == 0) {// 所有xxx0类型的值异或或,获得第一个值a ^= i;}}// b = a ^ b ^ a;b = eor ^ a;System.out.println("a = " + a + "; b = " + b);}};TwoOddOccurrenceValuesFromAnArrayByXor(arr);}
}

本文发布于:2024-02-04 04:52:37,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170699473352221.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:切面   算法
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23