蓝桥练习
2021年1月13日进行了蓝桥杯官网里面的入门训练
斐波那契数列
圆的面积
序列求和
A+B问题
基础练习里面的:
数列排序
十六进制转八进制
由于不是VIP账户,所以部分试题不能进行练习。
接下来进行代码展示
Fibonacci数列
问题描述:
Fibonacci数列的递推公式为:
Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
需要学习的知识:
1.java键盘录入知识
2.斐波那契数列的公式
3.基本数据类型的运算
import java.util.Scanner;
/*
* 输入一个数字,算出该数字的斐波那契数列并求余数
* */
public class FibonacciTest {
public static int Fibonacci(int n) {
if(n==1||n==2) {
return 1;
}
int first=1;
int second = 1;
int fibn = 0;
for(int i=2;i<n;i++) {
fibn = first+second;
first=second;
second=fibn;
}
return fibn%10007;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个整形的数据");
int n = sc.nextInt();
System.out.println(Fibonacci(n));
}
}
圆的面积
问题描述
给定圆的半径r,求圆的面积。
需要学习的知识:
1.java键盘录入知识
2.圆的面积公式
3.基本数据类型的运算
代码展示如下:
import java.text.DecimalFormat;
import java.util.Scanner;
/*
* 计算出圆的面积
* */
public class CircleTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
if(n>=1||n<=10000) {
double a;
double pi = 3.14159265358979323;
a = n*n*pi;
DecimalFormat d=new DecimalFormat("#.0000000");
System.out.println(d.format(a));
}else {
System.out.println("您输入的数字过大或者过小无法计算!");
}
}
}
序列求和
问题描述
求1+2+3+…+n的值。
需要学习的知识:
1.java键盘录入知识
2.循环遍历知识
3.基本数据类型的运算
代码展示如下:
import java.util.Scanner;
/*
* 输入一个数,算出它(包括它)前面的和
* */
public class sumTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Long n = sc.nextLong();
Long sum=(long) 0;
for(Long i=(long) 0;i<=n;i++) {
sum+=i;
}
System.out.println(sum);
}
}
A+B问题
问题描述
输入A、B,输出A+B。
需要学习的知识:
1.java键盘录入知识
2.基本数据类型的运算
代码展示如下:
import java.util.Scanner;
public class sumTest1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int A = sc.nextInt();
int B = sc.nextInt();
int sum=0;
sum=A+B;
System.out.println(sum);
}
}
数列排序
问题描述
给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200
import java.util.Scanner;
/*
* 数列排序
* */
public class numberTest {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int a = sc.nextInt();
//System.out.println(a);
int [] arr = new int[a];
for(int i=0;i<arr.length;i++) {
int n = sc.nextInt();
arr[i]=n;
}
for(int i=0;i<arr.length-1;i++) {
for(int j=0;j<arr.length-i-1;j++) {
if(arr[j+1]<arr[j]) {
int temp = arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}
for(int i1=0;i1<arr.length;i1++) {
System.out.print(arr[i1]);
}
}
}
十六进制转八进制
问题描述
给定n个十六进制正整数,输出它们对应的八进制数。
import java.util.Scanner;
public class jinzhizhuanhuan {
public static String turn8(Long n){
String shortTimeNum = "";
long remainder = 0;
while(n >= 1){
remainder = n % 8;
n = n / 8;
shortTimeNum = remainder + shortTimeNum;
}
return shortTimeNum;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();//输入一个16进制数
Long n = (long) Integer.parseInt(str, 16);//转换为整数(十进制)
System.out.println(turn8(n));//"十进制转换八进制:"
}
}
有关进制转换的其他知识可以参考一下链接:
Java有关进制转换问题