`
CshBBrain
  • 浏览: 639184 次
  • 性别: Icon_minigender_1
  • 来自: 成都
博客专栏
B7d9bf34-126e-301f-819e-81f2615b5a2a
开源WebSocket服务...
浏览量:142349
Group-logo
HTML5移动开发
浏览量:135718
社区版块
存档分类
最新评论

有道难题资格赛某题

 
阅读更多
我也上传到有道难题:




  • 大小: 6.1 KB
  • 大小: 92.3 KB
分享到:
评论
1 楼 CshBBrain 2010-06-02  

import java.util.ArrayList;
import java.util.Scanner;

public class Main1 {
public static void main(String[] args) {
Scanner sin=new Scanner(System.in);

mutiData(sin);
}

public static void mutiData(Scanner sin){
// 获取数据组数
Integer T = sin.nextInt();
while(true){
if(T >100 || T < 1){
System.out.println("输入的测试数据组数不合法,请重新输入!");
T = sin.nextInt();
}else{
break;
}
}
String [][] key = new String[T][3];
// 获取数据
int i = 0;
while(i < T){
Integer count = 3;
key[i] = getStr(sin,count);
++i;
}

i = 0;
while(i < T){
String [] data = key[i];
int radx = data[1].trim().length() + 1;
ArrayList<Integer> a = createNumber(Integer.valueOf(data[0]),radx);

ArrayList<Integer> b = createNumber(Integer.valueOf(data[2]),radx);

ArrayList<Integer> result = add(a,b,radx);

System.out.println(to10(result,radx));
++i;
}
}

public static int to10(ArrayList<Integer> result,int radx){
int sum = 0;
long radxkey = 1;
for(int i = 0; i < result.size(); ++i){
sum += result.get(i) * radxkey;
radxkey *= radx;
}

return sum;
}

public static ArrayList<Integer> createNumber(int value,int radx){
ArrayList<Integer> list = new ArrayList<Integer>();
int result = value / radx;
list.add(value%radx);

while(result >= radx){
list.add(result %radx);
result /= radx;
}
list.add(result);

return list;
}

public static ArrayList<Integer> add(ArrayList<Integer> a, ArrayList<Integer> b,int radx){
ArrayList<Integer> result = null;
if(a.size() >= b.size()){
result = new ArrayList<Integer>(a.size());

for(int i = 0; i < a.size(); ++i){
int sum = 0;
if(i >= b.size()){
sum = a.get(i);
}else{
sum = (b.get(i) + a.get(i)) % radx;
}

result.add(sum);

}
}else{
result = new ArrayList<Integer>(b.size());

for(int i = 0; i < b.size(); ++i){
int sum = 0;
if(i >= a.size()){
sum = b.get(i);
}else{
sum = (b.get(i) + a.get(i)) % radx;
}

result.add(sum);

}
}


return result;
}

public static String[] getStr(Scanner sin, int count){
String[] data = new String[count];
for(int i = 0; i < count; ++i){
data[i] = sin.next();
}

return data;
}

}

相关推荐

Global site tag (gtag.js) - Google Analytics