题目来源:牛客网
1.字符串分隔
题目描述
•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
输入描述:
连续输入字符串(输入2次,每个字符串长度小于100)
输出描述:
输出到长度为8的新字符串数组
输入
abc 123456789输出
abc00000 12345678 90000000
/**
* Created by a819 on 2017/8/30.
*/
/**
思路:不够8位,末尾补0,取前8位
多于8位 拆分,之后一次补0取前8位
*/
import java.util.*;
public class Main {
public static void main(String[] args) {
//System.out.println("Hello World!");
Scanner cin=new Scanner(System.in);
while (cin.hasNext()){
String str1=cin.nextLine();
String str2=cin.nextLine();
//String str2=cin.nextLine();
// int len=str1.length()/8+1+str2.length()/8+1;
//String res[]=new String[len];
//不够8位,末尾补0,取前8位
if (str1.length()<8){
str1+="00000000";
System.out.println(str1.substring(0,8));
}
else {//将字符串的按8位进行拆分
while (str1.length() >= 8) {
System.out.println(str1.substring(0, 8));
str1 = str1.substring(8, str1.length());
}
if (str1.length() > 0) {//如果拆分之后,还存在不够8位的字符串 末尾补0取8位
str1 += "00000000";
System.out.println(str1.substring(0, 8));
}
}
//字符串进行同样的操作
if (str2.length()<8){
str2+="00000000";
System.out.println(str2.substring(0,8));
}
else {
while (str2.length() >= 8) {
System.out.println(str2.substring(0, 8));
str2 = str2.substring(8, str2.length());
}
if (str2.length() > 0) {
str2 += "00000000";
System.out.println(str2.substring(0, 8));
}
}
}
}
}
/**
* Created by a819 on 2017/9/1.
*/
import java.util.*;
public class Main{
public static void main(String args[]){
Scanner cin=new Scanner(System.in);
int num;
int res=0;
int j=0;
while(cin.hasNext()){
String str=cin.nextLine();
//String str="0xC460";
str=str.substring(2,str.length());
for (int i=str.length()-1;i>=0;i--){
if (str.charAt(i)>='0'&&str.charAt(i)<='9')
{ int fang=1;
num=str.charAt(i)-'0';
for (int k=0;k<j;k++){
fang*=16;
}
num*=fang;
res+=num;
j++;
}
else {
int fang=1;
switch (str.charAt(i)) {
case 'A':
num =10;break;
case 'B':
num=11;break;
case 'C':
num=12;break;
case 'D':
num=13;break;
case 'E':
num=14;break;
case 'F':
num=15;break;
default:num=0;
}
for (int k=0;k<j;k++){
fang*=16;
}
num*=fang;
res+=num;
j++;
}
}
System.out.println(res);
}
}
}
3.质数因子
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。(多组同时输入 )
/**
* Created by a819 on 2017/9/2.
*/
import java.util.*;
public class H_Zhishuyinzi {
public static void main(String[] args) {
Scanner cin=new Scanner(System.in);
while(cin.hasNext()) {
Long num = cin.nextLong();
//long num=64577;
if (num==1)
System.out.println(" ");
else
while(num!=1)//循环打印
for (long i = 2;i<=num;i++){
if (num%i==0){
if (isZhiShu(i)){
System.out.print(i+" ");
num/=i;
break;
//System.out.println(num);
}
}
}
}
}
private static boolean isZhiShu(long k){//判断是不是质数
if (k==1)
return false;
long lim=(long)Math.sqrt(k);
for (long i=2;i<=lim;i++)
if(k%i==0)
return false;
return true;
}
}