• UVa 10925


      题目大意:关于大数的加法和除法的,用Java的BigInteger可以方便地解决。

     1 import java.io.*;
     2 import java.util.*;
     3 import java.math.*;
     4 
     5 class Main
     6 {
     7     public static void main(String[] args)
     8     {
     9         Scanner sc = new Scanner(System.in);
    10         int kase = 0;
    11         while (true)
    12         {
    13             int n = sc.nextInt();
    14             int f = sc.nextInt();
    15             if (n == 0 && f == 0)  break;
    16             kase++;
    17             BigInteger sum = BigInteger.valueOf(0);
    18             for (int i = 0; i < n; i++)
    19             {
    20                 BigInteger t = sc.nextBigInteger();
    21                 sum = sum.add(t);
    22             }
    23             BigInteger aver = sum.divide(BigInteger.valueOf(f));
    24             System.out.println("Bill #" + kase + " costs " + sum + ": each friend should pay " + aver);
    25             System.out.println();
    26         }
    27     }
    28 }
    View Code

      本来是想按照competitive programming 1的顺序慢慢来的,可是下午去参加华为的上机笔试,有一道题是关于大数的,当时我就傻眼了,只好用c++一点一点写代码了...然后就决定回来把大数这点先看了。其实我也是看了cp1后才知道Java的大数类的,最开始还能自己写点大数加法,后来参考《算法竞赛入门经典》也写了个bignum类(实际就是抄...),不过从感觉不能直接拿来用不方便,而且有时还会有些要命的小bug。所以还是用人家的好东西吧^_^

      话说还是第一次用Java做题,中间的小波折是难免的啦,记得以前扫过一眼说Java的类名要用Main,也没注意,然后就RE了...也不知怎么想起来要该类名的,灵光一闪?哈哈。不过那个输出实在是惨不忍睹啊,我怎么感觉写这这么费劲呢,是还没习惯的原因吗?想当初拒绝c++就是因为嫌他的输出太麻烦,现在却一直在用c++...至于Java,输出...还有类,输出一个hello world还要建一个类,在当初我看来实在太麻烦,就没什么好感,现在用上了,只好乖乖学了...

      然后我就想起了python,有大数,而且还不用建类,很多东西写起来也挺方便,可惜没怎么深入学习,而且竞赛不通用...

  • 相关阅读:
    线程中死锁的demo
    发布.net core程序碰到的问题
    .net core Identity学习(三) 第三方认证接入
    .net Identity学习(二)OAuth
    .net core Identity学习(一)注册登录
    Git常用操作
    log4net使用
    c#中的Quartz
    jquery中的deferred
    .net core应用部署在IIS上
  • 原文地址:https://www.cnblogs.com/xiaobaibuhei/p/3321844.html
Copyright © 2020-2023  润新知