蓝桥杯的一道题目,由于做过类似的,直接上代码
import java.util.*;
public class Main{
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
int n=in.nextInt();
//zifuhcuan
String[] a=new String[n];
//duochang
int[] b=new int[n];
//stack
int total=0;
//次方
int c=0;
for(int i=0;i<n;i++)
{
total=0;
a[i]=in.next();
b[i]=a[i].length();
}
for(int i=0;i<n;i++)
{
int k=b[i]-1;
for(int j=0;j<b[i];j++)
{
// System.out.println(a[i]);
// System.out.println(a[i].charAt(j));
// System.out.println((int)a[i].charAt(j));
// System.out.println((int)a[i].charAt(j)-48);
if(a[i].charAt(j)<=60)
{
c=(int) Math.pow(16,k);
total=total+((int)a[i].charAt(j)-48)*c;
// System.out.println(total);
k--;
}
else
{
c=(int) Math.pow(16,k);
// System.out.println(((int)a[i].charAt(j)-55)*c);
total=total+((int)a[i].charAt(j)-55)*c;
k--;
}
}
Stack<Integer> stack=new Stack<Integer>();
while(total!=0)
{ stack.push(total%8);
total=total/8;
}
int size=stack.size();
int m=0;
for(int q=0;q<size;q++)
{
m=stack.pop();
System.out.print(m);
}
System.out.println();
}
}
}
input:
10
76
931FA
C9DAB2B36C
248B87D6AE33F9A
62D7183A5D5789E4B2D6
B441E2411DC709E111C7E1E7ACB6F8CAC0BB2FC4C8BC2AE3BAAAB9165CC458E199CB89F51B135F7091A5ABB0874DF3E8CB45
output:
166
2230772
14473254531554
11105607655270637632
142656140722725361171131326
13210170440435616047410434374171726266761453005662770462136052707352525621313461054341463456117521542327670221513256604164676372145505
不知道什么原因直接0分,可能是因为我输出答案的时候是一位一位的输出?