import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; //这三个类可能比较陌生需要去查阅
public class java16 {
public static void main(String args[]) throws IOException{
int j;
String str;
BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入盘子的数量:");
str=keyin.readLine();
j=Integer.parseInt(str);
hanoi(j,1,2,3);
}
private static void hanoi(int j, int i, int i1, int i2)
{ if (n==1)
System.out.print("");
else
{
hanoi(n-1,p1,p3,p2);
System.out.print("");
hanoi(n-1,p2,p1,p3);
}
}
}
17.输入三个整数x,y,z,请把这三个数由小到大输出
import java.util.Scanner;
public class test17 {
public static void main(String[] args){
Scanner s = new Scanner(System.in);
System.out.println("请输入三个整数:");
int m = s.nextInt();
int n = s.nextInt();
int k = s.nextInt();
System.out.print("从小到大的顺序为:");
if(m > n){
if(n > k){//这里是按顺序的结构
System.out.println(k+","+n+","+m);
}else if(m > k){//这里是 k > n,k < m 时
System.out.println(n+","+k+","+m);
}else if(m < k){
System.out.println(n+","+m+","+k);
}
}else if(m > k){//这里就是 m k){
System.out.println(m+","+k+","+n);
}else if(n < k){
System.out.println(m+","+n+","+k);
}
}
}
}
18.企业发放的奖金根据利润提成。利润(I)低于或等于10 万元时,奖金可提10%;利润
高于10 万元,低于20 万元时,低于10 万元的部分按10%提成,高于10 万元的部分,可
可提成7.5%;20 万到40 万之间时,高于20 万元的部分,可提成5%;40 万到60 万之间时
高于40 万元的部分,可提成3%;60 万到100 万之间时,高于60 万元的部分,可提成1.5%,
高于100 万元时,超过100 万元的部分按1%提成,从键盘输入当月利润,求应发放奖金总
数?
import java.util.Scanner;
public class test18{
public static void main(String[] args){
Scanner s = new Scanner(System.in);
System.out.println("请输入薪资(单位:万元):");
double salary = s.nextDouble();
double jj = 0;
if(salary <= 10){
jj = salary * 0.1;
}else if(salary > 10 && salary < 20){
jj = 10 * 0.1 + (salary-10)*0.075;
}else if(salary > 20 && salary < 40){
jj = 10 * 0.1 + 10 * 0.075 + (salary-20) * 0.05;
}else if(salary > 40 && salary < 60){
jj = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (salary - 40) * 0.03;
}else if(salary > 60 && salary < 100){
jj = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + (salary-60) * 0.015;
}else if(salary > 100){
jj = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + 20 * 0.03 + 40 * 0.015 + (salary - 100) * 0.01;
}
//jj = Math.round(jj * 100)/100;
System.out.println("当月利润 "+salary+" 万元"+",应当发放奖金总数为:"+jj+" 万元");
}
}
19.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
import java.util.Scanner;
public class test19{
public static void main(String[] args){
Scanner s1 = new Scanner(System.in);
System.out.println("请输入字符串:");
String s = s1.nextLine();
char[] ch=s.toCharArray();
int zg=0,kg=0,sg=0,qg=0;
for(int i = 0 ; i < ch.length; i++){
if(ch[i] >=65 && ch[i] <= 90 || ch[i] >= 97 && ch[i] <= 122){
zg++;
}else if(ch[i] == ' '){
kg++;
}else if(ch[i] >= 48 && ch[i] <= 57){
sg++;
}else{
qg++;
}
}
System.out.println(s+" 中的英文字母有"+zg+"个,"+"空格的个数有"+kg+"个,"+"数字的个数有"+sg+"个,"+"其它字符有"+qg+"个。");
}
}
20.海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
public class test20 {
static int ts=0;//桃子总数
int fs=1;//记录分的次数
static int hs=5;//猴子数...
int tsscope=5000;//桃子数的取值范围.太大容易溢出.
public int fT(int t){
if(t==tsscope){
//当桃子数到了最大的取值范围时取消递归
System.out.println("结束");
return 0;
}
else{
if((t-1)%hs==0 && fs <=hs){
if(fs==hs)
{
System.out.println("桃子数 = "+ts +" 时满足分桃条件");
}
fs+=1;
return fT((t-1)/5*4);// 返回猴子拿走一份后的剩下的总数
}
else
{
//没满足条件
fs=1;//分的次数重置为1
return fT(ts+=1);//桃子数加+1
}
}
}
public static void main(String[] args) {
new test20().fT(0);
}
}