代码编织梦想

蓝桥杯基础练习
在这里插入图片描述

public class Main {//五层循环 按位输出
	public static void main(String[] args) {
		for(int i=0;i<=1;i++) {
			for(int j=0;j<=1;j++) {
				for(int k=0;k<=1;k++) {
					for(int a=0;a<=1;a++) {
						for(int b=0;b<=1;b++) {
							System.out.print(i);
							System.out.print(j);
							System.out.print(k);
							System.out.print(a);
							System.out.println(b);
						}
					}
				}
			}
		}
		
	}
}
public class Main{
	public static void main(String[] args) {
		for(int i=0;i<32;i++) {
			System.out.print(i%32/16);
			System.out.print(i%16/8);
			System.out.print(i%8/4);
			System.out.print(i%4/2);
			System.out.println(i%2);
		}
	}
}
public class Main {
	public static void main(String[] args) {
		for(int i=0;i<32;i++) {
			String str=Integer.toBinaryString(i);
			int n=Integer.parseInt(str);
			System.out.printf("%05d\n", n);//%05d表示把整型数据打印最低两位,如果不足5位,用0补齐		
		}
	}
}

在这里插入图片描述
在这里插入图片描述

import java.util.Scanner;

public class Main11 {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		long n=sc.nextLong();//注意数据规模
		long res=0;
		for(long i=1;i<=n;i++) {
			res+=i;
		}
		System.out.println(res);
}
}

在这里插入图片描述

import java.text.DecimalFormat;
import java.util.Scanner;
public class Main11 {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();//注意数据规模
		double res=Math.PI*n*n;
		DecimalFormat df=new DecimalFormat("#.0000000");//保留后7位小数输出
		System.out.println(df.format(res));
	}
}

在这里插入图片描述


import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int a=1;
		int b=1;
		int res=1;
		for(int i=1;i<=n-2;i++) {
			res=(a+b)%10007;
			a=b;
			b=res;
		}
		System.out.println(res);
	}
}
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {	
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int []a=new int[10000001];
		a[1]=1;
		a[2]=1;
		for(int i=3;i<=n;i++) {
			a[i]=(a[i-1]+a[i-2])%10007;
		}
		System.out.println(a[n]);
	}
}
import java.util.Scanner;

public class fan {//用递归的话会超时,所以不建议使用 只是练一下递归
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		long n=sc.nextLong();
		long res=0;
		res=fac(n);
		System.out.println(res%10007);
	}
		
	  public static long fac(long num){
	    	if(num==1||num==2) {
			return 1;
	    	}
	    	else return fac(num-1)+fac(num-2);
	  }
}

在这里插入图片描述

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int m=sc.nextInt();
		for(int i=0;i<n;i++) {
			for(int j=0;j<m;j++) {
				char c=(char)(Math.abs(i-j)+'A');
				System.out.print(c);
			}
			System.out.println();
		}	
	}
}

import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int m=sc.nextInt();
		char [][]ch=new char[26][26];
		char str;
		for(int i=0;i<n;i++) {
			str='A';
			for(int j=i;j<m;j++) {
				ch[i][j]=str++;//i++是先赋值给a变量,然后i自身再相加。++i,是自身相加再赋值给a变量。
			}
			str='A';
			for(int j=i-1;j>=0;j--) {
				ch[i][j]=++str;
			}
		}
		for(int i=0;i<n;i++) {
			for(int j=0;j<m;j++) {
				System.out.print(ch[i][j]);
			}
			System.out.println();
		}
	}
}

在这里插入图片描述

import java.util.Scanner;

public class pra1 {
	public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	int n=sc.nextInt();
	int []arr=new int[n];
	int res=0;
	for(int i=0;i<n;i++) {
		arr[i]=sc.nextInt();
	}
	int max=arr[0];//刚开始把max和min的初始化值都设为0,后来发现如果所有数据都大于0,那就检测不到最小值了,直接输出了0。初始化时要注意这点
	int min=arr[0];
	for(int i=0;i<n;i++) {
		if(max<arr[i]) {
			max=arr[i];
		}
		if(min>arr[i]) {
			min=arr[i];
		}
		res+=arr[i];
	}
	System.out.println(max);
	System.out.println(min);
	System.out.println(res);
	}
}

在这里插入图片描述

import java.util.Scanner;

public class find {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int []arr=new int[n];
		boolean flag=false;
		for(int i=0;i<n;i++) {
			arr[i]=sc.nextInt();
		}
		int a=sc.nextInt();
		for(int i=0;i<n;i++) {
			if(a==arr[i]) {
				System.out.println(i+1);
				flag=true;
				break;
			}
		}
		if(flag==false) {//想了一下怎么能输出-1,设置flag就可以做到
			System.out.println(-1);
		}
	}
}

杨辉三角形
问题描述
杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。 
下面给出了杨辉三角形的前4行:
1
1 1
1 2 1  
1 3 3 1  
给出n,输出它的前n行。

输入格式
输入包含一个数n。

输出格式
输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。
样例输入
4
样例输出
1
1 1
1 2 1
1 3 3 1
数据规模与约定
1 <= n <= 34。

import java.util.Scanner;

public class Pascal {
	public static void main(String[] args) {
		Scanner scanner=new Scanner(System.in);
		int n=scanner.nextInt();
		
		int [][]a=new int[n][n];
		for(int i=0;i<n;i++) {
			for(int j=0;j<n;j++) {
				if(j==0||i==j) {
					a[i][j]=1;
				}else if(j>0&&j<i) {//这里注意不要漏掉j>0
					a[i][j]=a[i-1][j-1]+a[i-1][j];
				}else {
					a[i][j]=0;
				}
			}
		}
		for(int i=0;i<n;i++) {
			for(int j=0;j<n;j++) {
				if(a[i][j]!=0) {
					System.out.print(a[i][j]);
					if(j<i) {//这里注意if要连续执行 不然就不能打印空格
						System.out.print(" ");
					}	
				}
			}
			System.out.println();
		}
	}
}


特殊的数字
问题描述
  153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333。编程求所有满足这种条件的三位十进制数。
输出格式
  按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。

public class Num {
	public static void main(String[] args) {
		int a=0;
		for(int i=100;i<=999;i++) {
			int bai=i/100;
			int shi=i/10%10;
			int ge=i%10;
			if(i==(int)(Math.pow(bai, 3)+Math.pow(shi, 3)+Math.pow(ge, 3))){
				System.out.println(i);
			}
		}
	}
}

回文数
问题描述
  1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。
输出格式
  按从小到大的顺序输出满足条件的四位十进制数。

public class huiwen {
	public static void main(String[] args) {
		for(int i=1000;i<=9999;i++) {
			int qian=i/1000;
			int bai=i/100%10;
		    int shi=i/10%10;
			int ge=i%10;
			if(qian==ge&&bai==shi) {
				System.out.println(i);
			}
		}
	}
}

特殊回文数
问题描述
  123321是一个非常特殊的数,它从左边读和从右边读是一样的。
  输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。
输入格式
  输入一行,包含一个正整数n。
输出格式
  按从小到大的顺序输出满足条件的整数,每个整数占一行。
样例输入
52
样例输出
899998
989989
998899
数据规模和约定
1<=n<=54。

import java.util.Scanner;

public class teshuhuiwen {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		sc.close();
		for(int i=10000;i<=999999;i++) {
			if(isHuiwen(i)==true&&isN(i, n)==true) {
				System.out.println(i);
			}
		}
	}
		public	static boolean isHuiwen(int a) {
			String str=String.valueOf(a);
			int n=str.length();
			boolean flag=true;
			for(int i=0;i<n/2;i++) {//判断0~n-2的字符
				if(str.charAt(i)!=str.charAt(n-1-i)) {
					flag=false;
					break;
				}
			}
			return flag;
		}
		public	static boolean isN(int a,int n) {
			char[] ch=String.valueOf(a).toCharArray();
			int sum=0;
			for(int i=0;i<ch.length;i++) {
				sum+=(ch[i]-'0');//这里不减字符0就运行不出来结果
			}
			if(sum==n) {
				return true;
			}else {
				return false;
			}
		}
}

十进制转十六进制
问题描述
  十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。
  给出一个非负整数,将它表示成十六进制的形式。
输入格式
  输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647
输出格式
  输出这个整数的16进制表示
样例输入
30
样例输出
1E

import java.util.Scanner;

public class shiliu {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		String res="";
		
		if(n==0) {//一定要考虑n=0的情况
			System.out.println(0);
		}else {
		while(n!=0) {
			int temp=n%16;
			if(temp>=10) {
				switch(temp) {
				case 10:
					res='A'+res;
					break;
				case 11:
					res='B'+res;
					break;
				case 12:
					res='C'+res;
					break;
				case 13:
					res='D'+res;
					break;
				case 14:
					res='E'+res;
					break;
				case 15:
					res='F'+res;
					break;
				}
			}else {
				res=temp+res;
			}
			n=n/16;
		}
		System.out.println(res);
		}
	}
}

//这里就是要判断30和1E的关系,可以得到30/16=1;30%16=14 即E

十六进制转十进制
问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535

import java.util.Scanner;

public class shi {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		String str=sc.nextLine();
		long sum=0;
		long value=1L;//每位乘的权值
		for(int i=str.length()-1;i>=0;i--) {
			if(str.charAt(i)>='A') {
				sum+=(str.charAt(i)-'A'+10)*value;
				value*=16;
			}else {
				sum+=(str.charAt(i)-'0')*value;
				value*=16;
			}
		}
		System.out.println(sum);
	}
}

十六进制转八进制
问题描述
  给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
  输入的第一行为一个正整数n (1<=n<=10)。
  接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
  输出n行,每行为输入对应的八进制正整数。
 【注意】
  输入的十六进制数不会有前导0,比如012A。
  输出的八进制数也不能有前导0。
样例输入
  2
  39
  123ABC
样例输出
  71
  4435274
【提示】
 先将十六进制数转换成某进制数,再由某进制数转换成八进制。

//这个题有些难 其实看着别人的写也没有看太懂
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class ba1 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();

		sc.nextLine();
		String []str=new String[n];
		for (int i=0; i<str.length; i++){
			str[i] = sc.next();
		}
		for (int i=0; i<str.length; i++){
			hexToOctal(str[i]);
		}
	}
		public static void hexToOctal(String s) {
			String hexs = "0123456789ABCDEF";
			String octal = "01234567";
			String []hb = {"0000","0001","0010","0011","0100","0101","0110","0111",
					"1000","1001","1010","1011","1100","1101","1110","1111"}; 
			
			String []ob = {"000","001","010","011","100","101","110","111"};
			List<String>listob=new ArrayList<String>();
			
			for (int i=0; i<ob.length; i++){
				listob.add(ob[i]);
			}
			StringBuffer bstr=new StringBuffer();
			
			for (int i=0; i<s.length(); i++){
				int h = hexs.indexOf(s.charAt(i));
				bstr.append(hb[h]);//字符串拼接
			}
			if(bstr.length()%3==1){
				bstr = bstr.insert(0, "00",0,2);
			}
			if(bstr.length()%3==2){
				bstr = bstr.insert(0, "0",0,1);
			}
			
			StringBuffer octalStr = new StringBuffer();
			
			for (int i=0; i<bstr.length(); i=i+3){
				String str = (String) bstr.subSequence(i, i+3);
				int num = listob.indexOf(str);
				octalStr = octalStr.append(octal.charAt(num));
			}
			
			if(octalStr.charAt(0)=='0'){
				octalStr.deleteCharAt(0);
			}
			
			System.out.println(octalStr);
		}
	}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43646500/article/details/124033471

【lq系列】 basic-6~basic-10-爱代码爱编程

今天的5道题: 【BASIC-6】基础练习 杨辉三角形  问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。    它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。    下面给出了杨辉三角形的前4行:       1

十进制转十六进制java(蓝桥杯)_succuba_ckr的博客-爱代码爱编程

问题描述   十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。   给出一个非负整数,将它表示

c语言练习2—计算数字之和_抬头式微笑唔的博客-爱代码爱编程_c语言计算各位数字之和

题目: 读入一个正整数 n,计算其各位数字之和 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10​^100​​。 思路: 读入一个整数最简单的方法是通过scanf()函数输入,但

数位数-爱代码爱编程

数位数 Problem Description 给定一个正整数 n ,请你求出它的位数。 Input 单组输入,输入一个整数 n 。(1<= n <= 2147483647) Output 输出一行,包含一

特殊回文数、杨辉三角形、查找整数、数列特征-爱代码爱编程

文章目录 特殊的回文数杨辉三角形查找整数数列特征 特殊的回文数 import java.util.Scanner; public class lanqiao1{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in);

数字之和_牛客网-爱代码爱编程

一、问题描述 对于给定的正整数 n,计算其十进制形式下所有位置数字之和,并计算其平方的各位数字之和。 输入描述: 每行输入数据包括一个正整数n(0<n<40000) 输出描述: 对于每个输入数据,计算其各位数字之和,以及其平方值的数字之和, 输出在一行中,之间用一个空格分隔,但行末不要有空格。 示例1 输入 4 12 97 39

蓝桥杯基础练习所有非VIP习题解答C语言-爱代码爱编程

数列排序 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述   给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200 输入格式   第一行为一个整数n。   第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。 输出格式   输出一行,按从小到大的顺序输出排序后的数列。 样例输入 5 8 3

基础篇-BASIC-10 十进制转十六进制-爱代码爱编程

试题 基础练习 十进制转十六进制 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,

蓝桥杯 基础练习 十进制转十六进制 java-爱代码爱编程

Basic10 基础练习 十进制转十六进制 题目如下: 这里也分成了算法实现和直接掉java方法的实现,算法这里没啥好说的,要注意输入为0时的情况,第一次没考虑到 ,改成do while 0也能进循环了。 这里也可以明确的知其他进制数转10进制和10进制转其他进制数的方式都是类似的 直接调用java的方法有时候是很简单的,但也有可能不符合题意。

PTA真题——1011 1002 1004-爱代码爱编程

1011 A+B 和 C (15分) 给定区间 [−2^​31,2 ^​31 ] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。 输入格式: 输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A、B 和 C。整数间以空格分隔。 输出格式: 对每组测试用例,在一行中输出 Cas

python基础编程题会员非会员请勿转发_基础练习(非VIP部分) - 蓝桥杯(Python实现)...-爱代码爱编程

闰年判断: 题目: 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个年份,判断这一年是不是闰年。 当以下情况之一满足时,这一年是闰年:1. 年份是4的倍数而不是100的倍数;2. 年份是400的倍数。 其他的年份都不是闰年。 输入格式 输入包含一个整数y,表示当前的年份。 输出格式 输出一行,如果给定的年

2021.2.20练习题-爱代码爱编程

问题描述   123321是一个非常特殊的数,它从左边读和从右边读是一样的。   输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。 输入格式   输入一行,包含一个正整数n。 输出格式   按从小到大的顺序输出满足条件的整数,每个整数占一行。 #include <stdio.h> int main () {

浙大PAT练习题1037-爱代码爱编程

卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算3、 5、8、4、2、1,则当我们对n=5、8、4、2进行验证的时候,就可以直接判定卡拉兹猜想的真伪,而不需要重复计算,因为这4个数已经在

P1015 [NOIP1999 普及组] 回文数 C语言实现-爱代码爱编程

        最近在做洛谷的一道回文数的题目时卡住了,但由于笔者只学习了C语言,于是想找一篇C语言写的博客学习一下。但无奈的是大多为C++或Python等语言,而且注释太少,用C++写的有的博客全局变量使用的太多,理解起来非常困难。于是笔者反复看一篇C++写的程序,用大概相同的思路用C语言写了一遍,希望能帮助到各位。 题目描述 若一个数(首位不为零)