两个算法--Day3

本文介绍了一种寻找数组中平衡点的方法,并提供了两种判断整数是否为3的幂的有效算法。平衡点是指数组中一个位置,在该位置左侧元素之和等于右侧元素之和。同时,文中给出了两个具体的实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



/*
 * 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++;
   
  }
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值