题目连接
未必是最优解法,有些题目特意避开了使用Java的API,尽量挑战一下自己
package algorithm;
import com.alibaba.druid.sql.visitor.functions.Bin;
import org.junit.Test;
import java.util.*;
import static java.lang.Math.*;
public class Easy {
//1.no use for,while,if and then sum the 1,2,...n 等差求和
public static int sum(int n){
return n*(n+1)/2;
}
//2.递归求乘法 System.out.println(multiply(100,2));
public static int multiply(int a,int b){
if(a-->0)
return b+multiply(a,b);
else
return 0;
}
//3.斐波拉契 0+1+1+2+3
public static int Feibolaqi(int n){
if(n>2)
return Feibolaqi(n-2)+Feibolaqi(n-1);
else if(n==1)
return 1;
else if(n==0)
return 0;
else
return -1;
}
//4.n的第k个因子
public static int getK(int n,int k){
int []ny=new int[n];
int x=0;
for(int i=1;i=k?ny[k-1]:-1;
}
//5统计a2+b2=c2,且1<=a,b,c<=n的满足abc的三元组的个数
public static ArrayList CountTriples(){
int i=0;
ArrayLists=new ArrayList<>();
int n=new Scanner(System.in).nextInt();
for(int a=1;anums[i]){
min=nums[i];
}
if(maxmax){
max=area;
maxpoint[0]=points[i];
maxpoint[1]=points[j];
maxpoint[2]=points[h];
}
}
}
}
System.out.println("max="+max);
System.out.println("点集为{"+maxpoint[0][0]+","+maxpoint[0][1]+"},{"+maxpoint[1][0]+","+maxpoint[1][1]
+"},{"+maxpoint[2][0]+","+maxpoint[2][1]+"}");
}
//8.给你两个整数,n和start。数组nums定义为:nums[i] = start + 2*i(下标从 0 开始)
// 且 n == nums.length。请返回 nums中所有元素按位异或 X O R XORXOR 后得到的结果。
public static void xorOperator(){
int n=40;int start=1;
int[]nums=new int[n];
for(int i=0;i0){
a=n%10;
n/=10;
mul*=a;
sum+=a;
}
System.out.println("mul="+mul+" sum="+sum);
}
//10.给你一个整数数组 nums,请你返回其中 位数 为 偶数 的数字的个数。
public static void findNumbers(){
int[]num={11,123,22,1,4,4123};
int nums=0;int wei=0;
for (int i = 0; i < num.length; i++) {
while(num[i]>0){
num[i]/=10;
++wei;
}
if(wei%2==0){
++nums;
}
wei=0;
}
System.out.println(nums);
}
//11.整数数组nums按升序排列,数组中的值 互不相同 。给你 旋转后 的数组nums和一个整数target,
// 如果nums中存在这个目标值target,则返回它的下标,否则返回-1。
public static int search(int s){
int[]nums={1,2,3,4,5,6,7,8};
for(int i=0;iS=new ArrayList<>();
S.add("a");
S.add("b");
S.add("q");
for(int i=0;ilist=new ArrayList<>();
if(n==0){
System.out.println('0');
}else {
while (n > 0) {
switch (n % 16) {
case 10: {
list.add("a");
}
case 11: {
list.add("b");
}
case 12: {
list.add("c");
}
case 13: {
list.add("d");
}
case 14: {
list.add("e");
}
case 15: {
list.add("f");
}
default: {
list.add(n % 16 + "");
}
}
n /= 16;
}
list.add("0x");
}
for(int i=list.size()-1;i>=0;i--){
System.out.print(list.get(i));
}
}
@Test
public void getAns(){
int h=0;
int[]nums={1,2,3,4,5,6};
int[]ans=new int[nums.length*2];
for(int i=0;i<2;i++){
for(int j=0+i*nums.length;jmap=new HashMap<>();
for(int i=0;i> entries = map.entrySet();
Iterator> iterator = entries.iterator();
Map.Entry next=iterator.next();
for(int i=0; next!=null;i+=2){
nums[i]=next.getKey();
nums[i+1]=next.getValue();
if(iterator.hasNext()){
next=iterator.next();
}
else
break;
}
for (int sortnum : nums) {
System.out.println(sortnum);
}
}
@Test
public void showTenbase(){
int n=3;
int start=1;
while(startlist=new ArrayList<>();
for (int num : nums) {
list.add(num);
}
Collections.sort(list);
for (Integer integer : list) {
System.out.println(integer);
}
int[]smallnums=new int[nums.length];
int n=0;
for(int i=0;ilist=new ArrayList<>();
while(num>0){
list.add(num%2);
num/=2;
}
for (int i = list.size()-1; i >=0 ; i--) {
// System.out.print(list.get(i));
if(list.get(i).equals(1)){
count++;
}
}
System.out.println(count);
}
@Test
public void getand(){
int l=2;int r=3;
int and=l;
for(;l<=r;l++){
and&=l; //0010 0011 0100 0101
}
System.out.println(and);
}
@Test
public void diandao(){
int x=120;
int sum=0;
int j=0;
ArrayListlist=new ArrayList<>();
while(x>0){
list.add(x%2);
x/=2;
}//1010 0101 1101010110 0110101011
// for (Integer integer : list) {
// System.out.print(integer);
// }
// System.out.println();
for (int i = list.size()-1; i >=0 ; i--,j++) {
sum+=list.get(i)*pow(2,j);
}
System.out.println(sum);
}
@Test
public void getonenumsarray(){
int n=123;
int temp;
int count=0;
int[]arr=new int[n+1];
for(int i=0;i<=n;i++){
temp=i;
while(temp>0){
if(temp%2==1){
count++;
}
temp/=2;
}
arr[i]=count;
System.out.println(arr[i]);
count=0;
}
}
@Test
public void getgoodmap(){
int[]nums={1,21,23,13,13,100};
int count=0;
for(int i=0;i123){
System.out.println("false");
System.exit(0);
}
}
System.out.println("true");
}
@Test
public void operatoex(){
String[]s={"+","-","+","+"};
int x=0;
for(int i=0;iallowed.length()){
for(int j=0;j=0;i--){
c1[i]=c[h++];
}
for (char cs : c1) {
System.out.print(cs);
}
}
@Test
public void leftroll(){
String s="asdfwe";
int n=2;
int j=0;
int i=0;
char[] chars = new char[s.length()];
for(;i0) System.out.println(1);
else if(sum==0) System.out.println(0);
else System.out.println(-1);
}
public static void main(String[] args) {
}
}



