两个算法--Day3

来源:互联网 发布:打破刚性兑付 知乎 编辑:程序博客网 时间:2024/05/21 13:23


/*
 * 1.平衡点就是指数组中某一个节点的前面的所有元素的和等于后面节点所有元素的和。
 * 2.判断一个数是否为3的n次幂。
 */

public class Day3 {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  //Pinghengdian phd=new Pinghengdian();
  //int arr[]={1,3,1,3,5,2,3,3};
  //phd.find(arr);
  Panduanmi pdm=new Panduanmi();
  //pdm.panduan(9);
  pdm.panduan2(8);

 }

}
class Pinghengdian
{
 public void find(int arr[])
 {
  int i=0,j=1,A=0;
  
  while(true)
  {
   if(A<=0)
   {
    A+=arr[i];
    i++;
   }else {
    A-=arr[arr.length-j];
    j++;
   }
   
   if(i+j==arr.length&&A==0)
   {
    System.out.println("平衡点是:"+"第"+i+"个元素:"+arr[i]);
    break;
   }else if(i+j>arr.length){
    System.out.println("没有平衡点");
    break;
   }
  }
  
 }
}
class Panduanmi
{
 //方法1
 public void panduan(int num)
 {
  int p;int q=num;
  for(int i=1;Math.pow(3, i)<=num;i++)
  {
   p=q%3;
   if(p==0)
   {
    q=q/3;
    if(q==1)
    {
     System.out.println(num+"是3的"+i+"次幂");
    }
   }else
   {
    System.out.println(num+"不是3的n次幂");
   }
  }
 }
 //方法2
 public void panduan2(int num)
 {
  int i=1;
  while(true)
  {
   if ((int)Math.pow(3, i)==num)
   {
    System.out.println(num+"是3的"+i+"次幂");
    break;
   }else if((int)Math.pow(3, i)>num)
   {
    System.out.println(num+"不是3的n次幂");
    break;
   }
   i++;
   
  }
 }
}

0 0
原创粉丝点击