7-1 猴子吃桃 (10 分)
猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天将剩下的桃子吃掉一半,又多吃了一个.以后每天都吃了前一天剩下的一半零一个.到第十天再想吃时,发现剩下n个桃子.求第一天共摘多少桃子?
import java.util.Scanner;
public class Main{
public static void main(String[] args)
{
Scanner cin=new Scanner(System.in);
int n=cin.nextInt();
int i=n,j=0;
for(j=0;j<9;j++)
{
i=(i+1)*2;
}
System.out.print(i);
}
}
7-2 斐波那契数列第n项 (10 分)
求斐波那契数列的第n项 f(n)=f(n-1)+f(n-2) 其中f1=f2=1
输入格式:
输入整数n
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n=in.nextInt();
int f0 = 0;
int f1 = 1;
int ans = 0;
for(int i=0;i<n;i++){
ans=f0+f1;
f0=f1;
f1=ans;
}
System.out.println(f0);
}
}
7-3 皮球反弹高度 (10 分)
一皮球从h米高度*落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
double a=sc.nextDouble();
double b=a;
for(int i=1;i<=9;i++){
b=b/2;
a+=b*2;
}
System.out.println(String.format("%.2f",a));
System.out.println(String.format("%.2f",b*1/2));
}
}
7-1 买鸡问题 (10 分)
有n块钱,去买m只鸡,公鸡每只5元,母鸡每只3元,小鸡一元三只;现要求买m只鸡刚好用完n块钱,问有多少种买法,输出每种买法中公鸡、母鸡和小鸡各有多少只。
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=sc.nextInt();
int sum=0;
int i,j,k;
for(i=0;i<=a/5;i++){
for(j=0;j<=a/3;j++){
for(k=3;k<=3*a;k++){
if((5*i+3*j+k/3==a)&&(i+j+k==b)&&(k%3==0)){
System.out.printf("%d,%d,%d\n",i,j,k);
sum++;
}
}
}
}
System.out.println(sum);
}
}
7-3 添加乘号 (10 分)
有表达式1+2+3+ ... + n 。现在要求你把其中两个不相邻的加号变成乘号,使得表达式结果为m。比如当n=49,m=2015时,1+2+3+...+1011+12+...+2728+29+...+49 = 2015和1+2+3+...+1617+12+...+2425+26+...+49 = 2015就是符合要求的答案。请找出所有可能的答案
输入格式:
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n=in.nextInt();
int m=in.nextInt();
int sum=0;
int tmp=0;
int res=0;
int num=0;
for(int i=1;i<=n;i++){
sum+=i;
}
for(int i=2; i<=n-2; ++i){
tmp = res = sum-(i+(i-1))+i*(i-1);
for(int j=i+2; j<=n; ++j){
res = tmp-(j+(j-1))+j*(j-1);
if(res ==m ){
num++;
System.out.printf("%d,%d\n",i-1,j-1);
}
}} if(num==0) System.out.printf("0");
}
}
7-1 前n项的和1 (10 分)
求1-3+5-7+……的前n项的和
输入格式:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int b=sc.nextInt();
int i;
int sum = 0 ;
int A = 0 ;
for(i = 1 ; A < b ; i += 2)
{
A++;
if(A %2 == 1) {
sum = sum + i;
}else {
sum = sum - i;
}
}
System.out.println(sum);
}
}
7-2 前n项的和2 (10 分)
计算数列 1-1/2+2/3-3/4+。。。+((-1)^(n+1))n/(n+1)前n项的和
输入格式:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int a=sc.nextInt();
int i;
double sum=1.0;
for(i=2;i<=a;i++){
if(i%2==0){sum+=-1.0*(i-1)/i;}
else {sum+=1.0*(i-1)/i;}
}
System.out.println(String.format("%.2f",sum));
}
}
7-1 输出n个数 (10 分)
键盘输入整数n,要求输出从1到n的n个数,以单个空格作为分隔符,每行输出5个数。
输入格式:
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int i;
for(i=1;i<=a;i++){
if(i%5==0||i==a){ System.out.println(i);}
else{ System.out.print(i+" "); }
}
}
}
7-2 整数的因子 (10 分)
键盘输入一个整数,输出它的所有因子。例如输入8,则输出1,2,4,8
输入格式:
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int a=sc.nextInt();
int i;
for(i=1;i<=a;i++){
if(a%i==0&&i!=a){
System.out.print(i+",");
}if(i==a){ System.out.print(i);}
}
}
}
7-3 判断素数 (10 分)
键盘输入一个整数,判断该数是否是素数,如果是素数,输出“yes”;否则输出“no”
输入格式:
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
int b=0;
for(int i=2;i<=Math.sqrt(a);i++)
{
if(a%i==0)
{
b=1;
break;
}
}
if(b==1||a==1)
System.out.println("no");
else
System.out.println("yes");
}
}