蓝桥杯练习

1、 立方尾不变
有些数字的立方的末尾正好是该数字本身。
比如:1,4,5,6,9,24,25,…
请你计算一下,在10000以内的数字中(指该数字,并非它立方后的数值),符合这个特征的正整数一共有多少个。
请提交该整数,不要填写任何多余的内容。

public class Demo1 {
public static void main(String[] args) {
	//第一题
	int sum=0;
	for (int i = 1; i<=10000; i++) {
		long li=1l*i*i*i;
		int num=i;
		boolean sign=true;
		while(num>0){
			int m=num%10;//求出最后一位
			long n=li%10;//求出最后一位
			if(m!=n){
				sign=false;
				break;
			}
			num=num/10;//去掉最后一位
			li=li/10;//
			
		}
		if(sign){
			System.out.println(i);
			sum++;
		}
		
	}
	
	System.out.println(sum);
	
}

}

2、问题描述
  FJ在沙盘上写了这样一些字符串:
  A1 = “A”
  A2 = “ABA”
  A3 = “ABACABA”
A4 = “ABACABADABACABA”
  … …
  你能找出其中的规律并写所有的数列AN吗?
输入格式
  仅有一个数:N ≤ 26。
输出格式
  请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。
样例输入
3
样例输出
ABACABA

import java.util.Scanner;

public class Demo2 {
public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	int n=sc.nextInt();
	//定义一个长度为26的数组
	char[] arr=new char[26];
	for (int i = 0; i < arr.length; i++) {
		int num=65+i;
		char c=(char) num;
		arr[i]=c;
	}
   String str="";
	for (int i = 1; i <=n; i++) {
		if(i==1) {
			str="A";
		}else {
			str=str+arr[i-1]+str;
		}
	}
	System.out.println(str);
}

}

3、小明很喜欢猜谜语。最近,他被邀请参加了X星球的猜谜活动。每位选手开始的时候都被发给777个电子币。规则是:猜对了,手里的电子币数目翻倍,猜错了,扣除555个电子币, 扣完为止。小明一共猜了15条谜语。战果为:vxvxvxvxvxvxvvx,其中v表示猜对了,x表示猜错了。请你计算一下,小明最后手里的电子币数目是多少。

public class Demo3 {
public static void main(String[] args) {

			String str="vxvxvxvxvxvxvvx";
			int sum=777;
			for (int i = 0; i < 15; i++) {
				char a=str.charAt(i);
				if(a=='v'){
					sum*=2;
				}else{
					sum-=555;
				}
				
				
			}
			
			System.out.println(sum);

}
}

4、问题描述

给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。
输入格式

第一行包含一个整数n。

第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。

第三行包含一个整数a,为待查找的数。
输出格式
如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。
样例输入
6
1 9 4 8 3 9
9
样例输出
2
数据规模与约定
1 <= n <= 1000。

import java.util.Scanner;

public class Demo6 {
public static void main(String[] args) {
	Scanner sc=new Scanner(System.in);
	
	int n=sc.nextInt();
	
	int[] arr=new int[n];
	
	//通过录入赋值
	for(int i=0;i<n;i++){
		arr[i]=sc.nextInt();			
	}
	
	int num=sc.nextInt();
	
	boolean sign=true;
	for(int i=0;i<arr.length;i++){
		
		if(num==arr[i]){
			System.out.println(i+1);
			sign=false;
			break;
		}			
	}
	if(sign){
		System.out.println(-1);
	}
	
	

5、编写一个递归的方法,打印输出一个字符串的所有排列。例如:对于字符串abc。输出为:
abc
acb
bac
bca
cab
cba

public class Demo5 {
	public static void main(String[] args) {
		char[] arr= {'a','b','c'};
		for (int i = 0; i < arr.length; i++) {
			//交换
			char temp;
			temp=arr[0];
			arr[0]=arr[i];
			arr[i]= temp;
			
		for (int j = 1; j < arr.length; j++) {
			//交换
		
			temp=arr[1];
			arr[1]=arr[j];
			arr[j]=temp;
			//得到结果
			for (int k = 0; k < arr.length; k++) {
				System.out.print(arr[k]);
			}
			System.out.println();
			//还原
			temp=arr[1];
			arr[1]=arr[j];
			arr[j]=temp;
			
			
		}	
		//还原
		temp=arr[0];
		arr[0]=arr[i];
		arr[i]= temp;	
			
		
		}	
	}
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值