POJ - 1220 进制转换 

 import java.io.*;
import java.util.*;
import java.math.*; public class Main {
public static int GetNum(char c)
{
if (Character.isDigit(c))return c-'0';
if (Character.isUpperCase(c))return c-'A'+10;
if (Character.isLowerCase(c))return c-'a'+36;
return '0';
}
public static char GetChar(int x)
{
if (x<10)return (char)(x+'0');
else if (x<=35) return (char)(x+'A'-10);
else return (char)(x+'a'-36);
}
public static void main(String[] args)
{
Scanner cin= new Scanner(new BufferedInputStream(System.in));
int T=cin.nextInt();
while(T--!=0)
{
BigInteger base1=cin.nextBigInteger();
BigInteger base2=cin.nextBigInteger();
BigInteger n=BigInteger.ZERO;
String s=cin.next();
for(int i=0;i<s.length();i++)
{
char c=s.charAt(i);
n=n.multiply(base1).add(BigInteger.valueOf(GetNum(c)));
}
String ans=new String();
while(!n.equals(BigInteger.ZERO))
{
ans=GetChar(n.mod(base2).intValue())+ans;
n=n.divide(base2);
}
if(ans.length()==0) ans+='0';
System.out.println(base1+" "+s);
System.out.println(base2+" "+ans);
if (T>0)System.out.println();
} } }

POJ - 1131进制转换

 import java.io.*;
import java.math.*;
import java.util.*;
public class Main { public static void main(String[] args)
{
Scanner cin=new Scanner(new BufferedInputStream(System.in));
BigDecimal b= new BigDecimal("8"),k,ans;
String s;
while(cin.hasNext())
{
ans=new BigDecimal(0);
k=new BigDecimal(1);
s=cin.nextLine();
for(int i=2;i<s.length();i++)
{
k=k.divide(b);
ans=ans.add( BigDecimal.valueOf(s.charAt(i)-'0').multiply(k));
}
System.out.println(s+" [8] = "+ans.toString()+" [10]");
//System.out.println(s+" [8] = "+ans.toString()+" [10]");
}
} }

POJ - 1205 矩阵加速递推

 import java.io.*;
import java.math.*;
import java.util.*;
public class Main { public static void main(String[] args)
{
Scanner cin=new Scanner(new BufferedInputStream(System.in));
BigInteger f[]=new BigInteger[1005],Three=BigInteger.valueOf(3);
BigInteger tp[][]=new BigInteger[3][3],a[][]=new BigInteger[3][3];
a[1][1]=Three; a[1][2]=BigInteger.valueOf(-1);
a[2][1]=BigInteger.ONE; a[2][2]=BigInteger.ZERO;
f[0]=BigInteger.ZERO;
f[1]=BigInteger.ONE;
for(int i=2;i<=1000;i++)
f[i]=f[i-1].multiply(Three).subtract(f[i-2]);
while(cin.hasNext())
{
int n=cin.nextInt();
tp=MatrixPower(a,2,n-1);
System.out.println(tp[1][1].toString());
}
}
public static BigInteger[][] MatrixMultiply(BigInteger a[][],BigInteger b[][],int n,int p,int m)
{
BigInteger c[][]=new BigInteger[n+1][m+1];
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
c[i][j]=BigInteger.ZERO;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
for(int k=1;k<=p;k++)
c[i][j]=c[i][j].add(a[i][k].multiply(b[k][j]));
return c;
}
public static BigInteger[][] MatrixPower(BigInteger a[][],int n,int p)
{
BigInteger ans[][]=new BigInteger[n+1][n+1];
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if (i==j)ans[i][j]=BigInteger.ONE;
else ans[i][j]=BigInteger.ZERO;
while(p>0)
{
if ((p&1)==1)ans=MatrixMultiply(ans,a,n,n,n);
p=p/2;
a=MatrixMultiply(a,a,n,n,n);
}
return ans;
}
}

最新文章

  1. 替代jquery1.9版本以前的toggle事件函数(开关)
  2. gcc 编译器参数
  3. 二元查找树转变成排序的双向链表之C#算法实现
  4. s3c2440存储控制器和地址以及启动的理解
  5. Hadoop权威指南(中文版,第2版)【分享】
  6. Bootstrap_排版_文字样式
  7. 十分钟让你的ASP.NET MVC网站变成PHP
  8. RHCE备考倒计时
  9. 关于Tarjan(2)
  10. 中文编程语言之Z语言初尝试: ZLOGO 4
  11. 51 Nod 1027 大数乘法【Java大数乱搞】
  12. BZOJ4259残缺的字符串
  13. springboot配置cxf
  14. java学习笔记(一):开始第一个java项目
  15. Python-Selenium中chromeDriver限制图片和Javascript加载
  16. 批量改名的多种方法stu_3_finished.jpg 去掉finished,stu_{1..20}_finished.jpg
  17. Most efficient way to get the last element of a stream
  18. CodeForces Round #527 (Div3) D2. Great Vova Wall (Version 2)
  19. Android系统源代码
  20. 高性能MySQL笔记-第5章Indexing for High Performance-005聚集索引

热门文章

  1. Transformer的PyTorch实现--转载
  2. [bat]删除文件
  3. UOJ社区版安装多个Judger
  4. Java 多线程:什么是线程安全性
  5. 解决WAMP Server与IIS端口冲突问题
  6. MySQL 的连接时长控制--interactive_timeout和wait_timeout
  7. C++ STL——string和vector
  8. java 8 中文API
  9. ResourceUtils 创建资源目录工具类
  10. js复选框实现全选、全不选、反选