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