澳门威利斯人_威利斯人娱乐「手机版」

来自 威利斯人娱乐 2019-11-04 17:14 的文章
当前位置: 澳门威利斯人 > 威利斯人娱乐 > 正文

两个超级大的整数相加相减,无限的路

澳门新葡亰游戏官网 ,上机标题(高端卡塔尔国- 多个一点都非常大的卡尺头相减 -运用Java 类解决(Java卡塔尔国

难点如下:

图片 1

代码如下:

package huawei;

import java.math.BigDecimal;

public final class Demo {

 public static void main(String[] args) {

  String a="1223424324324317.1234";
  String b="47.1234";
  String ans_sub=decrease(a,b);
  System.out.println("相减结果是:" ans_sub);
 }
 /*****************************************************************************
 Description  : 两个任意长度的正数相减
 Input Param  : String minuend   被减数,以\0表示字符串结束
                String subtrahend  减数,以\0表示字符串结束
 Return Value :  减法结果,必须以\0表示字符串结束
 *****************************************************************************/
 public static String decrease(String minuend,String subtrahend )
 {

     BigDecimal result = null;
  try {
      BigDecimal b1 = new BigDecimal(minuend);
      BigDecimal b2 = new BigDecimal(subtrahend);
      result = b1.subtract(b2).stripTrailingZeros();//tripTrailingZeros()去掉无用的0
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
     return (result.toString());

 }

 //去掉最前面的0

}

三个非常的大的整数相减 -运用Java 类杀绝(Java卡塔尔 标题如下: 代码如下: package huawei;import java.math.BigDecimal;public final cla...

上机标题(中级卡塔尔国- 四个非常大的莫西干发型相加相减 (Java卡塔尔

代码如下:

public class AddSub {
 public static void main(String[] args) {

  String a="4632864832684683568465765487657665765236465244";
  String b="47";
  int []pa=stringToInts(a);
  int []pb=stringToInts(b);
  String ans_add=add(pa, pb);
  String ans_sub=sub(pb,pa);
  System.out.println("相加结果是:" ans_add);
  System.out.println("相减结果是:" ans_sub);
 }
 /**
  * 将String型转换成int数组
  * @param s
  * @return
  */
 public static int[] stringToInts(String s){
  int[] n = new int[s.length()]; 
  for(int i = 0;i=0||b_len>=0){
   int temp=0;
   if(a_len>=0&&b_len>=0){
    temp=a[a_len] b[b_len] jinwei;
   }else if(a_len>=0){
    temp=a[a_len] jinwei;
   }else if(b_len>=0){
    temp=b[b_len] jinwei;
   }
   sb.append(temp "");
   jinwei=temp/10;
   a_len--;b_len--;
  }
  return getNum(sb.reverse());
 }

 public static String sub(int []a,int []b){
  StringBuffer sb=new StringBuffer();
  boolean flag=false;//判断a是不是比b小
  if(a.length=0||b_len>=0){
   int temp=0;
   if(a_len>=0&&b_len>=0){
    if((a[a_len]-jiewei)=0){
    temp=a[a_len]-jiewei;
    jiewei=0;
   }
   sb.append(temp "");

   a_len--;b_len--;
  }
  if(flag){
   return getNum(sb.append("-").reverse());
  }
  return getNum(sb.reverse());
 }
 //去掉最前面的0
 public static String getNum(StringBuffer sb){
  while(sb.length() > 1 && sb.charAt(0) == '0') {
            sb.deleteCharAt(0);
        }
  return sb.toString();
 }

}

运作实举例下:

图片 2

两个非常大的大背头相加相减 (Java卡塔尔国 代码如下: public class AddSub {public static void main(String[] args) {String a=46328648326846835684...

(标题链接:

本文由澳门威利斯人发布于威利斯人娱乐,转载请注明出处:两个超级大的整数相加相减,无限的路

关键词: 澳门威利斯人