最近做的蓝桥杯,对于输出形式的要求比leetcode严苛不少..
1:蓝桥杯的输出并没有规定必须是一个字符串输出
例如:for(String m:res){System.out.print(m);}是多个字符串拼接而成的不含空格的输出
注:for(int m:res){System.out.print(m+"");}表示强制转换int到string类型,之间不含空格
for(int m:res){System.out.print(m+" ");}表示强制转换int到string类型,之间含空格
这也是不同的输出形式的区别
2:java的^表示异或运算符,把数据转换成二进制,然后按位进行运算
注:^不表示多少次方!!应该使用Math.pow(m,n)或者for循环
3:Arrays.toString(a)输出格式为自带“[]”括号,并且,后有空格;
而for增强遍历循环输出格式由人为决定,for增强遍历循环缺点是丢失了下标信息,并且无空格,可直接拼接
4:Switch和for循环是可以联合使用的,只是可能会存在超时问题..(不推荐)
5:变量的定义式如果在for循环内,那么循环外是不能使用的,处理的办法就是在循环外确定初始值
6:for循环的判断式可以是num>=Math.pow(16,n),不仅仅是i<n此类较为简单的变量可分离判断式
7:System.out.println();类似于js的控制台console.log功能,可实时观察某一变量,排查bug可用
8:字符、字符串、字符串数组、字符数组之间的转换
(1)字符数组转换字符串
String str = new String(res); \\res是字符数组
System.out.println(str);
(2)字符串数组转化字符串(包括整数型数组)
for(String m:res){
System.out.print(m); //各种形式的拼接可回看第一点
//Syetem.out.println(m+" "); //含空格的拼接字符串
}
或者
System.out.println(Arrays.toString(print).
replace("[","").replace("]","").replace(",",""));
// replace("[","").replace("]","").replace(",","").replace(" ",""));
//第二行用于去除Arrays.toString的方括号以及逗号,可不用
//第三行用于去除Arrays.toString的方括号以及逗号和空格,也可以让字符串不含空格
再有
String str = "";
for(int j=0;j<n;j++)
{
str+= print[j]+" "; //含空格
//str+= print[j]+""; //不含空格
}
System.out.println(str);
区别在于第一种还是多个字符串拼接,第二种和第三种就是完整的一个字符串
10转16附代码:
import java.util.*;
public class Main{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int n=1;
//if(num == 0){return 0;}
//if(num == 1){return 1;}
for(;num>=Math.pow(16,n);)
{
n++;
}
// System.out.println(n);
int[] n16 = new int[n];
String[] res = new String[n];
for(int i=0;i<n;i++)
{
int xx = 1;
for(int j=0;j<n-1-i;j++)
{
xx = xx*16;
}
n16[i]=num/xx;
num = num%xx;
//System.out.println(n16[1]);
switch(n16[i])
{
case 0:
res[i] = "0";
break;
case 1:
res[i] = "1"; //单引号和双引号,一般是区别字符和字符串,但是字符串也能是1个甚至0个字符
break;
case 2:
res[i] = "2";
break;
case 3:
res[i] = "3";
break;
case 4:
res[i] = "4";
break;
case 5:
res[i] = "5";
break;
case 6:
res[i] = "6";
break;
case 7:
res[i] = "7";
break;
case 8:
res[i] = "8";
break;
case 9:
res[i] = "9";
break;
case 10:
res[i] = "A";
break;
case 11:
res[i] = "B";
break;
case 12:
res[i] = "C";
break;
case 13:
res[i] = "D";
break;
case 14:
res[i] = "E";
break;
case 15:
res[i] = "F";
break;
}
}
//System.out.println(Arrays.toString(res).
//replace("[","").replace("]","").replace(",","").replace(" ",""));
String str = "";
for(int z=0;z<n;z++)
{
str+= res[z]+"";
}
System.out.println(str);
}
}