hdu 5050 java程序求大数最大公约数

import java.io.*;
import java.math.*;
import java.util.*;
import java.text.*;
public  class Main
{      
 public static void main(String[] args)
 {
	 
	       int e=0,i,j;
	       BigInteger f,ff,p,h,a,aa,ee[]=new BigInteger[1100];
	       String s,str;
	       char[] ss=new char[1100];
	       char strr[]=new char[1100];
		   Scanner cin = new Scanner (System.in);
		   int k=cin.nextInt();
		   boolean  d=true;
		   while(d) {
			s=cin.next();
			str=cin.next();
			ss=s.toCharArray();//字符串转化为字符数组
			strr=str.toCharArray();
			f=BigInteger.valueOf(0);
			aa=BigInteger.valueOf(2);
	        for(i=0;i<ss.length;i++) {//字符串转化为大整数
	        	f=f.multiply(aa);
	        	a=BigInteger.valueOf(ss[i]-'0');
	            f=f.add(a);
	        }  
	    	ff=BigInteger.valueOf(0);
	        for(i=0;i<strr.length;i++) {
	        	ff=ff.multiply(aa);
	        	a=BigInteger.valueOf(strr[i]-'0');
	            ff=ff.add(a);
	        }
			h=BigInteger.valueOf(0);
			   do {
				  p=f.mod(ff);
				  f=ff;
				  ff=p;
				  if(ff.equals(h))break;
			   }while(true);
			   i=0;
		    while(true) {//大整数储存到大整数数组里面
		    	 ee[i]=f.mod(aa);
		    	 f=f.divide(aa);
		    	 i++;
		    	 if(f.equals(h))break;
		     }
			   e=e+1;
			   System.out.print("Case #"+e+": ");
			   for(j=i-1;j>=0;j--)
				   System.out.print(ee[j]);
			   System.out.println();
            k=k-1;
            if(k==0)
            	d=false;
		}
 }
}

原文地址:https://www.cnblogs.com/thefirstfeeling/p/4410606.html