蓝桥杯竞赛练习1

蓝桥练习

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有关进制转换问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值