问题一:
猴子第一天摘下若干桃子,当即吃了一半,还觉不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天天早上都吃了前一天剩下的一半零一个。到第n(n<=20)天早上想再吃时,见只剩一个桃子了。求第一天共摘了多少桃子。
输入格式:
输入天数n。
输出格式:
输出第一天摘的桃子数(结果保证在int型范围)。
输入样例:
5
输出样例:
46
代码实现:
import java.util.*;
public class Main {
static int sum;
static void peach(int n){
for(int i=0;i<n;i++){
if(i==0){
sum=1;
}else sum=2*(sum+1);
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
peach(n);
System.out.println(sum);
}
}
问题二:
猴子摘了n个桃子,它计划每天吃相同的桃子数(桃子数为整数),并且正好吃完没有剩余,问猴子有多少吃桃方法。
输入格式:
一个数n,表示总的桃子数(n<5×108)。
输出格式:
吃桃方法数。
输入样例:
10
输出样例:
4
代码实现:
import java.util.*;
public class Main {
static int idea(int n){
int sum=0;
for(int i=1;i<Math.sqrt(n);i++){
if(n%i==0){
sum+=2;
}
}
return sum;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
System.out.println( idea(n));
}
}