java从小白开始的练习(三,函数练习)
Posted 韶光不负
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java从小白开始的练习(三,函数练习)相关的知识,希望对你有一定的参考价值。
求第n项斐波那契数列的值?
(斐波那契数列:1 1 2 3 5 8 13 21 34 55 89 ....)
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入第n项的值:");
int num=sc.nextInt();
System.out.println("第n项的值为:"+number(num));
}
public static int number(int num){
if(num<=2){
return 1;
}else if(num==3){
return 2;
}else {
return number(num-2)+number(num-1);
}
}
}
上楼梯问题:某个人上楼梯,每次只能上一个台阶或者两个台阶,
那么当这个人到达第n个台阶时,共有多少种走法?
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入台阶的数量:");
int num=sc.nextInt();
System.out.println("走台阶的数量方法有:"+number(num));
}
public static int number(int num){
if(num<=2){
return 1;
}else {
return number(num-2)+number(num-1);
}
}
}
买了一对刚刚出生的兔子,过了四个月被称为成年兔子,成年兔子,每一个生出一对小兔子,问第n个月,共有多少对兔子(不考虑兔子死亡问题)
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入月份:");
int num=sc.nextInt();
System.out.println("问第"+num+"个月,共有"+getRabbitCount(num)+"对兔子:");
}
public static int getRabbitCount(int num) {
if(num <= 4) {
//判断几个月生一胎
return 1;
}
return getRabbitCount(num - 1) + getRabbitCount(num - 4);
}
}
根据完整的路径从路径中分离文件路径、文件名及扩展名
(传递一个路径 c://a//b//c.avi,返回该文件的后缀名)
public class Test {
public static void main(String[] args) {
String word=" c://a//b//c.avi ";
word.trim();
//会把字符串的首尾空格去除掉
String [] arr = word.split("//");
//去掉中间
System.out.println(arr[arr.length-1]);
}
}
输入一个字符串,判断该字符串是否是回文字符串(面试题)
(123454321)
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一回文数:");
int num = sc.nextInt();
if(isPalind(num)){
System.out.println("是回文数");
}else {
System.out.println("不是回文数");
}
}
public static boolean isPalind(int x){
//首尾判断
if(x==0)return true;
if(x<0||x%10==0)return false;
int div=1;
while (x/div>=10) div*=10;
while (x>0){
if(x/div!=x%10)return false;
else {
x%=div;
x/=10;
div/=100;
}
}
return true;
}
}
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一回文数:");
int num = sc.nextInt();
if(isPalind(num)){
System.out.println("是回文数");
}else {
System.out.println("不是回文数");
}
}
public static boolean isPalind(int x){
//字符串处理
String a=(new StringBuilder(x+"")).reverse().toString();
return (a.equals(x+""));
}
}
最优解:对折解法
public static boolean isPalind(int x){
//对折解法
if(x<0||(x%10==0&&x!=0)) return false;
int reverse=0;
while (x>reverse){
reverse=reverse*10+(x%10);
x/=10;
}
return x==reverse||x==reverse/10;
}
去掉字符串中的所有空格
public class Test {
public static void main(String[] args) {
String word=" I love You ";
word.trim();
//会把字符串的首尾空格去除掉
String [] arr = word.split("\\\\s+");
//去掉中间
System.out.println(word.join("/",arr));
//连接字符串
}
}
将字母全部转换为大写或小写
public class Test {
public static void main(String[] args) {
String word=" I love You ";
word.trim();
System.out.println(word.toLowerCase());
System.out.println(word.toUpperCase());
}
}
接收用户输入的一句英文,将其中的单词以反序输出,(例:“hello c sharp”→“sharp c hello”)
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
s.trim();
String ss=" ";
String[] arr=s.split(" ");
for(int i=arr.length-1;0<=i;i--){
ss+=arr[i];
ss+=" ";
}
System.out.println(ss);
}
}
从请求地址中提取出用户名和域名
(例:网易 (163.com))
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String s=sc.nextLine();
System.out.println(s);
String []arrs=s.split("://|/");
System.out.println("域名为"+arrs[1]);
String []arrname=s.split("=|&");
System.out.println("用户名为:"+arrname[1]);
}
}
让用户输入一句话,找出所有"呵"的位置。
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一回文数:");
String str = sc.nextLine();
char val='呵';
for(int i=0;i<str.length();i++){
if(str.charAt(i)==val){
System.out.println(i);
}
}
sc.close();
}
}
让用户输入一句话,判断这句话中有没有邪恶,如果有邪恶就替换成这种形式然后输出,如:“老牛很邪恶”,输出后变成”老牛很**”;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一句话:(包含呵)");
String s = sc.nextLine();
if (s.indexOf("邪恶")!=-1){
String ss=s.replace("邪恶","**");
System.out.println(ss);
}else {
System.out.println("很正义");
}
}
}
猜字游戏,计算机随机一个0~100的整数,每次用户输出字猜,
(提示如下:
猜大了哦,重新猜
猜小了哦,重新猜
猜对了)
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int number=(int)(Math.random()*100);
System.out.println("随机数为:"+number);
for(int i=3;i>=0;i--){
System.out.println("请输入一个数:");
int num=sc.nextInt();
if(num>number){
System.out.println("温馨提示: 猜大了哦!重新猜");
}else if(num<number){
System.out.println("温馨提示:猜小了哦!重新猜");
}else {
System.out.println("猜对了");
}
System.out.println("您还有"+i+"机会");
}
}
}
作业13:猜拳游戏,石头剪刀布。随机数生成石头剪刀布(0:石头 1:剪刀 2:布)
import java.util.Random;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
Random random_num =new Random();
for(int i=3;i>=0;i--){
int computer=random_num.nextInt(3);
System.out.println("欢迎参加猜拳游戏(0:石头 1:剪刀 2:布)");
int people=sc.nextInt();
System.out.println("机器人出:"+computer);
if(computer-people==1){
System.out.println("恭喜您胜出");
}else if(computer-people==0){
System.out.println("平手");
}else {
System.out.println("机器人胜出");
}
System.out.println("您还有"+i+"机会");
}
}
}
以上是关于java从小白开始的练习(三,函数练习)的主要内容,如果未能解决你的问题,请参考以下文章