每天5道Java基础编程练习题(四)
你好! 欢迎阅读,今天是第四天,本系列面向Java基础基础学习阶段程序猿,每天5道基础编程,希望能帮你慢慢培养编程思维,走进编程的世界(高手勿喷)
大量的注释让你更正确快速的阅读代码。
废话不多说,让我们直接进入正题
第一题
猴子吃桃,猴子第一天摘下若干桃子,当即吃了一半,不过瘾又吃了一个
第二天早上将剩下的吃了一半,又多吃了一个
以后每天早上都吃前一天剩下的一半,再多吃一个
到第10天,只剩下一个桃子,求第一天摘了几个
public static void monkeyEatPeach(){
int x=1;//从最后一天开始倒过来算
for(int i=1;i<10;i++){//第10天不算,共9天
x=(x+1)*2;
}
System.out.println(x);
}
第二题
两个乒乓球队进行比赛,各出3人。甲队为a,b,c三人,乙队为x,y,z三人。
已抽签决定比赛名单。有人向队员打听比赛的名单。
a说他不和x比,c说他不和x,z比,试编程找出三队赛手的名单
public static void pingpangCompetition(){
for(int i=1;i<4;i++){//甲队 1-a,2-b,3-c
for(int j=1;j<4;j++){//乙队 1-x,2-y,3-z
if(i==3&&(j==1||j==3)){//c不和xz比
continue;//满足条件退出此次循环,继续下一次
}
if(i==1&&(j==1||j==2)){//a不和xy比
continue;
}
if(i==2&&(j==2||j==3)){//b不和yz比
continue;
}
//解码
if(i==1){
System.out.print("a,");
}
if(i==2){
System.out.print("b,");
}
if(i==3){
System.out.print("c,");
}
if(j==1){
System.out.println("x");
}
if(j==2){
System.out.println("y");
}
if(j==3){
System.out.println("z");
}
}
}
}
第三题
有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13,···
求出这个数列的前20项之和
public static void decimalsSequence(){
double sum=0;//存放求和的值
double[] num=new double[20];//存放分子的数组
num[0]=2;//分子的第一位和第二位
num[1]=3;
double[] num1=new double[20];//存放分母的数组
num1[0]=1;//分母的第一位和第二位
num1[1]=2;
for(int i=2;i<20;i++){//根据前两项计算出所有分子分母的值,后一项是前两项的和
num[i]=num[i-1]+num[i-2];
num1[i]=num1[i-1]+num1[i-2];
}
//输出所有的求和项
for (int i = 0; i < num1.length; i++) {
System.out.println(num[i]+"/"+num1[i]);
}
//进行求和
for (int i = 0; i < num1.length; i++) {
sum+=num[i]/num1[i];
}
//输出最终结果
System.out.println("前20项的和为:"+sum);
}
第四题
求1+2!+3!+。。。。。+20!的和
public static void factorial(){
long sum=0;//long型变量,赋值时都要写l或L,0不用写
for(int i=1;i<=20;i++){//阶乘的值
long n=i;//保存阶乘的初始值,放在循环之中,每次新的阶乘可以初始化
for(int j=i-1;j>0;j--){//阶乘
n=n*j;
}
System.out.println(i+"的阶乘是"+n);
sum+=n;//累加
}
System.out.println(sum);//输出结果
}
第五题
给一个不多于5位的数,要求:
1.求它是几位数
2.逆序打印出各位数字
public static void demandNumberLength(){
System.out.println("输入一个数(不超过5位):");
//输入为字符串,方便处理
String num= new Scanner(System.in).next();
//调用Java中的方法,将字符串转换为字符数组
//字符数组的长度就代表这个数的位数
char[] chs=num.toCharArray();
//输出他的位数
System.out.println("它的长度为:"+chs.length);
//从数组最后一位开始打印
System.out.println("逆序输出:");
for (int i = chs.length-1; i >=0; i--) {
System.out.println(chs[i]);
}
}
学习要循序渐进,思维慢慢培养,如果遇到程序异常要耐心检查,大多数都是语法错误,比如该大写没有大写,该加分号的没有分号,改写分号的写了其他符号。
耐心检查,你一定会成功!!
第四天,加油!!