zoukankan      html  css  js  c++  java
  • lightoj 1214

    lightoj 1214 Large Division  (大数除法)

    链接:http://www.lightoj.com/volume_showproblem.php?problem=1214

    题意:给定 a, b 两个数,判断 a 是否整除 b 。(a 为 大数)

    思路: 用字符串存 a ,转化为 整型数组,用除法原理进行处理,没什么难度。其中关键是负号的处理。

    代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cmath>
     4 #include <cstring>
     5 #include <algorithm>
     6 #include <vector>
     7 using namespace std;
     8 
     9 typedef long long LL;
    10 LL b, x, y;
    11 char ar[202];  // a
    12 int nu[202];    //把 a 字符转化为数字
    13 
    14 bool option()
    15 {
    16     int i = 0, j;
    17     int len = strlen(ar);       //a 的长度
    18     if(ar[0] == '-')  len--, i = 1; //去掉 a 的‘-’号
    19     for(j = 0; ar[i]; ++j, ++i)   //转化
    20         nu[j] = ar[i] - '0';
    21     if(b < 0)    b = -b;    //去掉 b 的负号
    22     for(j = 0, y = 0; j < len; )    //循环除法
    23     {
    24         x = y;
    25         while(x <= b && j < len)
    26         {
    27             x = x * 10 + nu[j];
    28             j++;
    29         }
    30         y = x % b;
    31     }
    32     if(y)   return false;
    33     return true;
    34 }
    35 
    36 int main()
    37 {
    38     int t, i = 1;
    39     //freopen("in.txt", "r", stdin);
    40     cin >> t;
    41     while(t--)
    42     {
    43         scanf("%s%lld", ar, &b);
    44         printf("Case %d: ", i++);
    45         puts(option() ? "divisible" : "not divisible" );
    46     }
    47     return 0;
    48 }

     刚才又写了一遍,用的java,刚学java,求不喷:

     1 import java.math.BigInteger;
     2 import java.util.Scanner;
     3 
     4 /**
     5  * @author Administrator
     6  *
     7  */
     8 public class Main {
     9 
    10     /**
    11      * @param args
    12      */
    13     public static void main(String[] args) {
    14         // TODO Auto-generated method stub
    15         BigInteger a, b;
    16         int t;
    17         Scanner cin = new Scanner(System.in);
    18         t = cin.nextInt();
    19         for(int i = 1; i <= t; i++){
    20             a = cin.nextBigInteger();
    21             b = cin.nextBigInteger();
    22             if(a.abs().mod(b.abs()).compareTo(BigInteger.ZERO) == 0){
    23                 System.out.println("Case "+i+": divisible");
    24             }
    25             else {
    26                 System.out.println("Case "+i+": not divisible");
    27             }
    28         }
    29     }
    30 
    31 }
  • 相关阅读:
    easy ui 表单ajax和from两种提交数据方法
    easy ui 下拉级联效果 ,下拉框绑定数据select控件
    easy ui 下拉框绑定数据select控件
    easy ui 异步上传文件,跨域
    easy ui 菜单和按钮(Menu and Button)
    HTTP 错误 404.3
    EXTJS4.2 后台管理菜单栏
    HTML 背景图片自适应
    easy ui 表单元素input控件后面加说明(红色)
    EXTJS 4.2 添加滚动条
  • 原文地址:https://www.cnblogs.com/Duahanlang/p/3229401.html
Copyright © 2011-2022 走看看