两个算法--Day1

/*
 * 1.水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
 * 2.猴子吃枣问题。猴子摘了一堆枣。第一天吃了一半,还嫌不过瘾,又吃一个;第二天又吃了剩下的一半零一个;
 *   以后每天如此。到第十天,猴子一看只剩下一个了。问第一天有多少个枣?
 */
package algorithm;
public class Day1 {
 public static void main(String []args){
  Solution1 sl1=new Solution1();
  sl1.shuiXianHua(153);
  sl1.find(100, 999);
  sl1.houZi(10, 1);
  
 }
}
class Solution1
{
 public void shuiXianHua(int num)
 {
  int n,a;
  int num1=num;
  int sum=0;
  for(n=0;num>=Math.pow(10, n);n++){}
  if(n<3){
   System.out.println("请输入一个n位数(n>=3)");
   
  }else{
  for(int i=n-1;i>=0;i--)
  {
   a=num1/(int)Math.pow(10, i);
   num1=num1%(int)Math.pow(10, i);
   sum+=(int)Math.pow(a, n);
  }
  if(sum==num)
  {
   System.out.println(num+"是水仙花数!");
  }}
 }
 public void find(int a,int b)
 {
  if(a>b)
  {
   int temp=0;
   temp=a;
   a=b;
   b=temp;
   
  }
  
  for(int i=a;i<=b;i++)
  {
   this.shuiXianHua(i);
   
  }
 }
 public void houZi(int day,int num)
 {
  int sum=0;
  for(int i=1;i<day;i++)
  {
   sum=(num+1)*2;
   num=(num+1)*2;
  }
  System.out.println(sum);
 }
 
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值